PDA

View Full Version : [MySQL] UPDATE SET non fa


bouncey2k
16-12-2007, 10:49
Ho creato un pannello in html per aggiornare dei dati nel database.
pannello.php?id=2 mi mostra i dati inseriti nel record 2 del mio database e siccome me li mostra come semplici input text ho la possibilità di modificarli.

i dati li invia a pannello2.php tramite form. Faccio la connessione al database e poi inserisco la seguente query che però non funziona:

$update = mysql_query ("UPDATE tabella SET
id = '$id' ,
titolo = '$titolo' ,
testo = '$testo'

WHERE id = '$id'
" , $db);

Ponendo WHERE id = '$id' dovrebbe selezionarmi il record numero 2 o no? C'è un qualche errore nella query?

kk3z
16-12-2007, 12:51
Ehm, ma l'errore? Tiro ad indovinare?

Se la colonna id è auto_increment non dovresti mai avere bisogno di aggiornarla manualmente.
E se il tipo di tabella è numerico, non dovresti usare gli apici (per esempio ancora su id), non mi ricordo se è obbligatorio o no...

UPDATE tabella SET titolo = '$titolo', testo = '$testo' WHERE id = '$id'

bouncey2k
16-12-2007, 18:35
Ehm, ma l'errore? Tiro ad indovinare?

Se la colonna id è auto_increment non dovresti mai avere bisogno di aggiornarla manualmente.
E se il tipo di tabella è numerico, non dovresti usare gli apici (per esempio ancora su id), non mi ricordo se è obbligatorio o no...

ma l'id infatti non lo aggiorno mai, lo metto per avere tutti i parametri sotto mano. Qual è l'errore? L'errore è che se cambio un parametro (per esempio il titolo) non me lo aggiorna, è come se il comando UPDATE non funzionasse. Che c'entra il tipo di tabella??

kk3z
16-12-2007, 22:09
Uh non il tipo della tabella, il tipo del campo (int, varchar..)...

Prova a fare la stessa query con phpmyadmin, oppure chiama mysql_affected_rows dopo aver fatto la query.

bouncey2k
16-12-2007, 22:48
Uh non il tipo della tabella, il tipo del campo (int, varchar..)...

Prova a fare la stessa query con phpmyadmin, oppure chiama mysql_affected_rows dopo aver fatto la query.

Da phpmyadmin funziona.. ovviamente.

Cmq da phpmyadmin mi da questo comando

UPDATE `tabella` SET `titolo` = '$titolo' WHERE `tabella`.`id` =2

questa query mostra una concatenazione di tabella e id e forse è qui l'errore. Ma come faccio a concatenarle con la sintassi usata nel mio primo post?

kk3z
17-12-2007, 10:16
Prova con
$update = mysql_query ("UPDATE tabella SET
id = '$id' ,
titolo = '$titolo' ,
testo = '$testo'

WHERE id = '$id'
" , $db) or die("Errore: ".mysql_error())

magari hai qualche errore con gli apici!

0rph3n
17-12-2007, 12:59
ma ti viene restituito qualche errore?