Newsgroup: it.comp.www.php
Titolo: aggiornamento simultaneo di più record

Salve, torno a chiedere il vostro preziosissimo aiuto! ; )
Tabella con 4 campi: id, posizione, titolo, path          e    10 record
Allora faccio una query (select) e inserisco i dati letti in dei campi di 
testo che hanno un nome assegnato dinamicamente tipo posizione1, 
posizione2...titolo1, titolo2...ecc
Ora vorrei modificare i valori nei campi di testo e premendo un solo bottone 
aggiornare i 10 record del mio database.
Ho provato cosě:
i campi li ho chiamati titolo[], posizione[]...
poi ho ciclato e i dati escono tranquillamente.
una volta modificati i dati, clicco sul bottone e li invio attraverso un 
form ad un 'altra pagina nella quale ho inserito questo codice:
for ($n = 0; $k== 10; $k++) {
  $q = mysql_query("UPDATE dance SET posizione = '$posizione[$n]' , titolo = 
'$titolo[$n]' , path = '$path[$n]' where id='$n'");
  $n++;
}
 if(!$q) {print "errore! ";}
 else {print "OK! ";
 }
 ?>
Il tutto fiunziona per tutti i record tranne per l'ultimo (il 10), nel quale 
vengono cancellati i dati!
Qualcuno mi sa dire il perchč?
Grazie
UDG

 }
Ma come lo usi sto for!!!
Metti:
for ($n = 0; $n< 10; n++) {
$q = mysql_query("UPDATE dance SET posizione = '$posizione[$n]' , titolo =
 '$titolo[$n]' , path = '$path[$n]' where id='$n'");
 }
CIAO

 for ($n = 0; $k== 10; $k++) {
Perche' non utilizzi:
for ($n = 0; $n < 10; $n++) { // ciclo da 0 a 9
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio 
news:MRPmd.38045$Ni.13...@twister1.libero.it...

Niente!    : ( 


Grazie per la risposta, ma avevo già provato col "<" ma non va!!! 

 vengono cancellati i dati!
se l'ultimo viene cancellato controlla prima che siano veramente settati:
print_r($posizione);
print_r($titolo);
print_r($path);
  id := {0,1,2,3...9}
oppure
  id := {1,2,3,4...10} ?
cambia lo script:
error_reporting(E_ALL);
for ($n = 0; $n<10; $n++)
{
  $rslt = mysql_query(
     "UPDATE dance SET ".
     "posizione = '$posizione[$n]', ".
     "titolo = '$titolo[$n]', ".
     "path = '$path[$n]' ".
     "WHERE id='$n'");
  if (mysql_affected_rows()!=1 ) {print "error in $n: righe modificate:
".mysql_affected_rows();}
  else {print "$n: OK! ";
  }
}
Problemi che si vedono: programmazione strutturata, controlla errori, scrivi
piu chiaro il codice, analizza prima bene che cosa stai cercando di fare,
visualizza tutti i problemi senza nascondere nullo (error_reporting)...


Grazie, mi da errore in 0   (error in 0: righe modificate:0)...praticamente 
non scrive il record 0
Perchč?...sto impazzendo! 

 Perchč?...sto impazzendo!
Scusa la mia nubbiaggine, ma hai impostato mysql_query all'interno di una 
variabile... ma poi con sta variabile che ci fai? 


ma nella tua tabella esiste un id = 0 ?
$k = '';
for ($n = 0; $n<10; $n++) {
$k = $n+1;
$q = mysql_query("UPDATE dance SET posizione = '$posizione[$n]' , titolo =
'$titolo[$n]' , path = '$path[$n]' where id='$k'");
/*-------------------------------------------------------^--*/
}
ti consiglio inoltre di mettere dopo la mysql_query() -> or die
(mysql_error());
saluti
Corrado Modica
www.pachinoglobale.com

 ha scritto nel messaggio 
news:mq1nd.185852$b5.92...@news3.tin.it...

Risolto, grazie!...l'id partiva da uno, non ci avevo fatto caso!!!
UDG