Newsgroup: it.comp.www.php
Titolo: Cancellazione già evvenuta in MySQL

Uso questo codice per cancellare il record pesche dalla tabella frutta
// preparazione query per eliminare dalla tabella frutta il record il cui 
campo name contiene 'pesche'
$query = "DELETE FROM frutta WHERE name = 'pesche'";
// esegue la query
$result = mysql_query($query) or die ("Quesry failed; " .mysql_error());
Tutto sembra funzionare perfettamente, ma nel caso il record non esista non 
mi da nessun messaggio.So che
andrebbe testata l'esistenza prima della cancellazione.
Ma č possibile, dopo la tentata cancellazione di un record che non esisteva, 
avere un messaggio appropriato?
Un messaggio del tipo "operazione non riuscita, record inesistente" o 
qualcosa del genere?
Va testata una qualche variabile MySQL?
Grazie
Leo


Esiste la funzione mysql_affected_rows
http://it2.php.net/manual/en/function.mysql-affected-rows.php
	Francesco

 andrebbe testata l'esistenza prima della cancellazione.
no, non direi proprio. Faresti una query in più e inutile. Segui il
consiglio di Francesco.
d


Certo č alquanto strano poter rimuovere un record che non c'e': o l'ha 
rimosso qualcuno prima di noi, oppure ho la possibilitā di inserire un 
id o simili a mano (attenzione, elevato rischio di inj-sql) o si tratta 
di azione "dolosa".
	Francesco

avere un messaggio appropriato?
Prova a guardare sul manuale se c'e' una funzione che ti ritorna il numero
di righe "influenzate" dall'operazione... credo sia qualcosa del genere di
mysql_affected_rows o roba cosi'.
Leonardo
-- 
And where the black and corkscrew towers climb,
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides

 id 
Stai ipotizzando che name sia chiave, e non č affatto detto.

 mi da nessun messaggio.
E che messaggio dovrebbe dare?
Tu gli dici di prendere la relazione tale, effettuare una selezione 
orizzontale e cancellare le righe che restano. Se dopo la selezione hai 
una relazione vuota non cancelli nulla ma non è mica un caso eccezionale.


Sto ipotizzano di un modulo dove vengono inseriti dei dati che verranno 
cancellati nel database.
Questi dati vengono selezionati tramite una chiave primaria (una campo del 
modulo).
Può accadere che 2 persone inseriscano gli stessi dati all'insaputa una 
dell'altra.
A questo si riferiva la mia domanda.
Grazie
Leo

 Stai ipotizzando che name sia chiave, e non č affatto detto.
No sto solo dicendo che per eseguire un'azione (ovvero la rimozione di un
record) l'utente deve digitare e/o premere qualcosa e, se questo qualcosa
č associato a un record che non esiste, posso aver lasciato scoperto un
link o simili... della serie, se ho il cestino vuoto che senso ha offrire
all'utente la possibilitą di svuotarlo? Ovviamente non mi riferisco
all'OP, stavo solo pensando a voce alta!
     Francesco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 qualcosa del genere ?
L'operazione è *perfettamente* riuscita, non si è verificato *alcun* errore.
Se poi nel tuo caso desideri triggerare qualcosa quando il numero di 
"affected rows" vale qualcosa di particolare, usa appunto quel valore.
ciao, f.

 Certo č alquanto strano poter rimuovere un record che non c'e':
[..]
Perchč ?
ciao, f.