[PHP] Loop WHILE aggiornamento campi e tabelle.

  • Creatore Discussione Creatore Discussione piero60
  • Data di inizio Data di inizio

piero60

Utente Attivo
26 Gen 2015
71
2
8
Salve a tutti,
Qualcosa mi sfugge, ho un database che devo aggiornare contenente 2 tabelle
una tabella si chima dati e la seconda si chiama user.
Queste 2 tabelle possono avere un numero di record differenti, pensavo
di aver commesso un errore nella procedura di aggiornamento nel loop while
però stranamente le 2 tabelle anche se contenenti un numero di record
differenti si aggiornano correttamente.
A rigor di logica, i loop "while" visto che le 2 tabelle possono avere
un numero di record inseriti differenti, dovrebbero essere 2, uno per
aggiornare la tabella dati ed uno per aggiornare la tabella user.
Ho fatto delle prove con differenti numeri di record e campi inseriti
nelle tabelle e le tabelle si aggiornano per intero entrambi.
E' corretto ? Magari mi sfugge qualcosa sull'utilizzo della funzione loop.

Io pensavo "ma evidentemente non è così" , che se la tabella dati, la prima ad essere
chiamata per aggiornarsi ad esempio contiene 4 record e la tabella user ne contiene invece 7,
la tabella user si aggiornasse fino al record 4, invece si aggiorna totalmente.
Anche invertendo i numeri, quindi tabella dati 7 record ed user 4 tutto
continua a funzionare.

Che faccio. lascio così o faccio 2 loop differenti di aggiornamento uno
per tabella?
Sarà un risultato casuale oppure il loop while è in grado di funzionare
anche in questo caso gestendo le 2 tabelle?

Grazie.

PHP:
$query = mysql_query("SELECT * FROM dati") or die ("Impossibile eseguire la query: " . mysql_error());

if (mysql_num_rows($query) > 0){

  while ($row = mysql_fetch_row($query)) {
                
  $db = mysql_query("UPDATE dati SET attiva='$attiva', fine='$fine' ");
  $db = mysql_query("UPDATE user SET pren='$pren', pren1='$pren1' ");

     } 
  }
 
Credo che il numero di righe di ogni tabella non influisca affatto nel ciclo while, perchè la query che fai è un update, anzi secondo me non ti serve proprio il while, a vedere il codice che hai postato.
In ogni query tu dici di aggiornare tutta la tabella x con i dati a=b e c=d, quindi in realtà tu aggiorni tutti i record di entrambe le tabelle tante volte quante sono le righe della select prima
 
Grazie Rikk73,
effettivamente UPDATE interviene su tutti i record e quindi il loop non serve a nulla.
 
  • Like
Reactions: Rikk73

Discussioni simili