Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Query per spostare dati da una tabella all'altra con relazione.

    Salve a tutti. Non riesco a capire perchè non riesco a far funzionare questa query.
    Vi spiego l'obbiettivo:
    ho 2 tabelle una vecchia che si chiama "palestre" ed una nuova che si chiama "pal".

    Sono collegate tra loro da una colonna in comune "palestre.aff" con "pal.palfpi".

    Nella tabella nuova "pal" mancano i dati nella colonna "palcel" presenti invece nella colonna "tel2" di "palestre".

    Devo quindi copiare tutti i dati presenti nella tabella "palestre.tel2" nella tabella "pal.palcel" rispettando rispettando la relazione tra "palestre.aff" ed "pal.palfpi"

    Ecco la struttura:

    Tabella "palestre"
    -aff
    -tel2

    Tabella "pal"
    -palfpi
    -palcel

    Relazione tra "palestre" e "pal" è "aff"="palfpi"


    Questo è quanto ho preparato ma non combina nulla senza neanche dare errori:

    <?php
    // inclusione del file di classe
    include "funzioni_mysql.php";
    // istanza della classe
    $data = new MysqlClass();
    // chiamata alla funzione di connessione
    $data->connetti();

    $sql = "SELECT palestre.aff, palestre.tel2, pal.palfpi, pal.palcel, FROM palestre, pal WHERE palestre.aff = pal.palfpi";

    $query = mysql_query($sql)or die("Non riesco ad eseguire la query: Problemi: ".mysql_error());

    while ($results = mysql_fetch_array($query)) {

    $palfpi = $results[palestre.aff];
    $cel = $results[palestre.tel2];

    mysql_query ("UPDATE pal SET pal.palcel = '$cel' WHERE pal.palfpi = '$palfpi'");

    }
    ?>

    Graize

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    update pal,palestre
    set pal.palcel = palestre.tel2
    where palestre.aff = pal.palpi
    Fai comunque un backup delle tabelle per precauzione prima di provare.

  3. #3
    provo subito e ti fo sapere

  4. #4
    niente da fare, ho provato sia cosi:



    $sql = "SELECT palestre.aff, palestre.ind, palestre.leg, palestre.tel1, palestre.tel2, palestre.email, palestre.resp, pal.palfpi, pal.palindirizzo, pal.palsede, pal.paltel, pal.palcel, pal.palemail, pal.palresponsabile FROM palestre, pal ";

    $query = mysql_query($sql)or die("Non riesco ad eseguire la query: Problemi: ".mysql_error());

    while ($results = mysql_fetch_array($query)) {

    mysql_query ("UPDATE pal,palestre SET pal.palcel = palestre.tel2 WHERE palestre.aff = pal.palfpi");



    che cosi:

    $sql = "SELECT palestre.aff, palestre.ind, palestre.leg, palestre.tel1, palestre.tel2, palestre.email, palestre.resp, pal.palfpi, pal.palindirizzo, pal.palsede, pal.paltel, pal.palcel, pal.palemail, pal.palresponsabile FROM palestre, pal WHERE palestre.aff = pal.palfpi";

    $query = mysql_query($sql)or die("Non riesco ad eseguire la query: Problemi: ".mysql_error());

    while ($results = mysql_fetch_array($query)) {

    mysql_query ("UPDATE pal,palestre SET pal.palcel = palestre.tel2 WHERE palestre.aff = pal.palfpi");



    Ci mette molto tempo a caricare la pagina ed alla fine dice:
    Gateway Time-out
    The gateway did not receive a timely response from the upstream server or application.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Esegui solo la query che ti ho scritto, senza fare prima select e senza metterla dentro il while.

  6. #6
    Funziona tutto alla perfezione. Sei un grande. Grazie mille.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.