Ho problema stranissimo.
Estraggo dei dati da un DB e li utilizzo per redigere un form che invio alla pagina stessa per l'update.
Questo è il codice che dal ciclo while sviluppo per il form:
$rigaclassifica .= "<tr>
<td width=\"250\">
<input type=\"hidden\" name=\"id[$id]\" value=\"$riga[id]\">
<input type=\"text\" name=\"interprete[$id]\" size=\"33\" value=\"$riga[interprete]\"></td>
<td width=\"243\"><input type=\"text\" name=\"titolo[$id]\" size=\"32\" value=\"$riga[titolo]\"></td>
<td width=\"61\"><input type=\"text\" name=\"pos_prec[$id]\" size=\"5\" value=\"$riga[pos_nuova]\"></td>
<td width=\"66\"><input type=\"text\" name=\"pos_nuova[$id]\" size=\"5\" value=\"\"></td>
<input type=\"hidden\" name=\"nome_destinazione\" value=\"$cod_class\">
</tr>";
fino a qui tutto ok, l'output html è corretto.
Poi recupero i dati del form e li sviluppo per inviarli al DB per l'UPDATE.
if(!empty($_POST))
{
if (!$_POST['fatto']) {
echo ("<CENTER>
[b]ATTENZIONE. Non selezionato la cella di controllo \"FATTO\");
exit;
}else{
$cod_class = $_POST ['nome_destinazione'];
foreach($_POST as $key => $value ) { $campo[] = $key;
}
foreach($_POST[$campo[0]] as $key0 => $val0 ) {
$id[] = $val0;
}
foreach($_POST[$campo[1]] as $key1 => $val1 ) {
$interprete[] = $val1;
}
foreach($_POST[$campo[2]] as $key2 => $val2 ) {
$titolo[] = $val2;
}
foreach($_POST[$campo[3]] as $key3 => $val3 ) {
$pos_prec[] = $val3;
}
foreach($_POST[$campo[4]] as $key4 => $val4 ) {
$pos_nuova[] = $val4;
}
$lastupdate= date('d-m-Y');
for($i = 0; $i < count($id); $i++) {
$update = "UPDATE $nome_tabella SET
interprete = '$interprete[$i]',
titolo = '$titolo[$i]',
pos_prec = '$pos_prec[$i]',
pos_nuova = '$pos_nuova[$i]',
lastupdate = '$lastupdate'
where id = '$id[$i]'";
$risultato = mysql_query ($update, $connessione)
or die ("Impossibile inserire i dati nella tabella $nome_tabella");
}
}
}else{
$cod_class = $_GET['dest'];
}
FUNZIONA MERAVIGLIOSAMENTE IN LOCALE! Sul server mi succede questo:
se i dati che vado ad estrarre sono i primi della tabella (id autoincrement e consecutivi dal numero 1) aggiorna bene, ma se li recupero a in base ad altre condizioni (ad esempio solo quelli "xyz") o non li aggiorna o me ne aggiorna solo alcuni.
Ho cancellato le prime 2 righe della tabella (id 1 e 2) e poi sono andato a prelevare le righe dalla 13 alla 22. Invio il form per l'update e lui mi agiorna solo le righe dalla 13 alla 19 compresa... delle altre manco esistono....
Cosa può essere? Sbaglio qualcosa nel ciclo foreach? qualche variabile che il server, un pò più inquadato del mio pc, non mi lascia passare?
Vi prego, se potete datemi degli input... non so più cosa provare