PDA

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: