View Full Version : [PHP] Delete
Daniel80
09-07-2008, 16:58
Ciao a Tutti...
Vengo subito al Punto...
ho due tabelle
1. utenti --> ID_Utente; Cognome; Nome; Username; Password; Email
2. appunti --> ID_Appunto; ID_Utente; Data; Titolo; Descrizione; Visibilita; ID_Utente_Vis; Escursione
3. data (che ha soo delle date disponibili per delle escursioni)
Non riesco a cancellare una riga... da nessuno delle due tabelle, non ci riesco neppure a colpi di macete sull'Hd :D
ho usato:
"DELETE FROM appunti WHERE ID_Utente = '$utente_id'";
"DELETE FROM appunti WHERE ID_Appunto = '$appunto_id'";
Entrambi o uno alla volta ma niente...
$utente_id e $appunto_id vengono passati da un'altra pagina... e danno il valore corretto ho verificato... qualcun sa darmi una mano?
P.S. Ogni utente può avere più appunti
RobyG_08
09-07-2008, 17:25
Ciao a Tutti...
Vengo subito al Punto...
ho due tabelle
1. utenti --> ID_Utente; Cognome; Nome; Username; Password; Email
2. appunti --> ID_Appunto; ID_Utente; Data; Titolo; Descrizione; Visibilita; ID_Utente_Vis; Escursione
3. data (che ha soo delle date disponibili per delle escursioni)
Non riesco a cancellare una riga... da nessuno delle due tabelle, non ci riesco neppure a colpi di macete sull'Hd :D
ho usato:
"DELETE FROM appunti WHERE ID_Utente = '$utente_id'";
"DELETE FROM appunti WHERE ID_Appunto = '$appunto_id'";
Entrambi o uno alla volta ma niente...
$utente_id e $appunto_id vengono passati da un'altra pagina... e danno il valore corretto ho verificato... qualcun sa darmi una mano?
P.S. Ogni utente può avere più appunti
Per caso ID_Utente e ID_Appunto sono campi numerici? perchè se così fosse devi togliere gli apicetti singoli
"DELETE FROM appunti WHERE ID_Utente = $utente_id";
"DELETE FROM appunti WHERE ID_Appunto = $appunto_id";
Prova magari è solo quello
Daniel80
09-07-2008, 17:42
Intanto GRAZIE... si sono campi numerici, anzi sono chiavi... ma non ha funzionato...
Sapresti darmi qualche altro suggerimento?
RobyG_08
09-07-2008, 19:13
l'utente con il quale ti connetti al db ha i permessi per eseguire le delete? in altre parti del programma e su altre tabelle riesci a farle?
hai provato a fare un echo della stringa sql prima di eseguirla per vedere cosa viene eseguito?
Daniel80
10-07-2008, 10:03
l'utente con il quale ti connetti al db ha i permessi per eseguire le delete? in altre parti del programma e su altre tabelle riesci a farle?
hai provato a fare un echo della stringa sql prima di eseguirla per vedere cosa viene eseguito?
Con lo stesso utente ho i permessi di modificare (UPDATE) e dato che sono dello stesso livello con il DELETE penso che i permessi ci siano...
Ecco il codice scritto per il delete e per vedere cosa esce fuori...
continua ad uscire l'ID_Utente che in realtà dovrebbe essere già cancellato!!!
$sql = "DELETE FROM appunti WHERE ID_Utente = $utente_id AND ID_Appunto = $appunto_id";
$qry = mysql_query($sql) or die (mysql_error());
$row_qry = mysql_fetch_array($qry);
$tot = mysql_num_rows($qry);
$i=0;
do
{
echo "<td width='70' valign='top'>".mysql_result($qry,$i,"ID_Utente")."</td>";
$i++;
} while($row_qry= mysql_fetch_array($qry)&&($i<$tot));
Sono con le mani tra i capelli... non riesco a capire il perchè sto delete non funzioni!!! OPS... non ho capelli... hihihihihihih :D
RobyG_08
10-07-2008, 10:14
Hai già provato ad eseguire la query direttamente sul db e non da programma? funziona?
Daniel80
10-07-2008, 10:17
AGGIORNAENTO.... con il codice di sopra ora riescoi a cancellare la riga della seconda tabella ma non riesco ancora a cancellare l'utente nella prima tabella...
Qualche suggeimento in merito?
Thx
RobyG_08
10-07-2008, 10:18
Poi adesso che ci penso, sono abbastanza sicuro che per tirare fuori il numero di righe modificate da una delete (come da un update) devi usare mysql_affected_rows perchè mysql_num_rows è valido solo con istruzioni SELECT :read:
Daniel80
10-07-2008, 10:21
Poi adesso che ci penso, sono abbastanza sicuro che per tirare fuori il numero di righe modificate da una delete (come da un update) devi usare mysql_affected_rows perchè mysql_num_rows è valido solo con istruzioni SELECT :read:
GENIO... ora ci provo...
chinookAT85LSAURO
10-07-2008, 13:00
Non serve il fetch per la delete
Daniel80
10-07-2008, 15:17
Ho risolto GRAZIE a tutti... per cui GRAZIE a Roby_G
Per l'eliminazione degli utenti bisogna prima eliminare tutti i record della seconda tabella che hanno una relazione nella prima tabella...
Eliminazione della seconda tab...
$appunto_id = trim($_POST['appunto_id']);
$utente_id = trim($_POST['utente_id']);
$sql = "DELETE FROM appunti WHERE ID_Utente = $utente_id AND ID_Appunto = $appunto_id";
$qry = mysql_query($sql) or die (mysql_error());
Eliminazione dalla prima tab...
$sql = "DELETE FROM utenti WHERE ID_Utente = '$utente_id'";
$qry = mysql_query($sql) or die (mysql_error());
Funziona tutto THX ;)
RobyG_08
10-07-2008, 15:22
Tutto è bene quel che finisce bene :D
Daniel80
12-07-2008, 17:39
Ciao ho un altro problemino... non c'entra col DELETE ma vediamo se siete altrettanto bravi...
ecco due righe di codice:
<?php
$id_appunto = mysql_result($qry,$i,"ID_Appunto");
?>
<input type="hidden" name="regalo" value= "<?php $id_appunto ?>">
Id_appunto viene mandato ad una pagina che ne fa il controllo... se è 0 (cioè la riga della tabella interessata è vuota) non deve cancellare altrimenti cancello...
solo che quando la tabella è vuota la mysql_result(...) di sopra mi da un errore:
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 8 in c:\programmi\easyphp1-8\www\admindel.php on line 264
Come faccio visto che mi serve proprio sapere quando la riga è vuota????
malocchio
14-07-2008, 17:50
Ciao ho un altro problemino... non c'entra col DELETE ma vediamo se siete altrettanto bravi...
ecco due righe di codice:
<?php
$id_appunto = mysql_result($qry,$i,"ID_Appunto");
?>
<input type="hidden" name="regalo" value= "<?php $id_appunto ?>">
Id_appunto viene mandato ad una pagina che ne fa il controllo... se è 0 (cioè la riga della tabella interessata è vuota) non deve cancellare altrimenti cancello...
solo che quando la tabella è vuota la mysql_result(...) di sopra mi da un errore:
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 8 in c:\programmi\easyphp1-8\www\admindel.php on line 264
Come faccio visto che mi serve proprio sapere quando la riga è vuota????
Dovresti spiegare meglio il significato delle variabili che hai usato e il contesto in cui le hai usate.... oppure mi sono perso qualcosa io?:confused:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.