PDA

View Full Version : PHP Cancellazione record database


me88
25-09-2010, 16:44
ciao sto sviluppando un sito in php e devo cancellare tutti i campi di una tabella contenuta nel mio database prima di chiudere la sessione. questo è il codice:

<?php
$db_user = "root";
$db_password = "quindici";
$db_database = "sito";
$connessione=mysql_connect($db_host,$db_user,$db_password);

$recset=mysql_db_query("sito","DELETE id From carrello",$connessione);
mysql_close($connessione);

session_start(); //ripresa sessione corrente
session_destroy(); //Distrugge la sessione corrente e tutte le variabili di sessione in essa contenute
header("Location: login.html");
?>

non ottengo nessun errore e vengo reindirizzata correttamente a login.html, il problema è che non viene cancellato nessun record. cosa sbaglio??

wisher
25-09-2010, 17:01
Controlla la sintassi della delete, dovresti avere qualcosa di simile
$recset=mysql_db_query("sito","DELETE From carrello where `id`=id",$connessione);
http://www.morpheusweb.it/html/manuali/sql/sql_delete.asp

tuccio`
25-09-2010, 17:07
DELETE FROM carrello

per eliminare tutti i record va bene

id è di troppo owiamente

dojolab
25-09-2010, 17:09
DELETE FROM carrello

per eliminare tutti i record va bene

id è di troppo owiamente

Esatto Tuccio, il DELETE presuppone che si cancellino via TUTTI i campi di un record.

me88
25-09-2010, 17:15
grazie! togliendo id funziona, anche se non vedo cosa possa cambiare il toglierlo o lasciarlo, comunque bene così!

tuccio`
25-09-2010, 18:00
DELETE elimina dei record... può eliminarli tutti, o eliminarne alcuni.. ma non può eliminarne una parte.. quindi non ha senso specificare un sottoinsieme dello schema della tabella

dojolab
25-09-2010, 18:45
DELETE elimina dei record... può eliminarli tutti, o eliminarne alcuni.. ma non può eliminarne una parte.. quindi non ha senso specificare un sottoinsieme dello schema della tabella

Esatto.
E' comunque un errore di sintassi SQL.

Puoi usare il WHERE come sottolineato in precedenza per dire QUALE record seccare via (e li scegli il campo che vuoi per il controllo) e poi la clausola LIMIT per limitare il numero di delete.