salve, io vorrei controllare in una tabella se c'è un certo id,e se cè vorrei cancellarlo.è possibile fare tutto in una query o devo farne due diverse?e come?
salve, io vorrei controllare in una tabella se c'è un certo id,e se cè vorrei cancellarlo.è possibile fare tutto in una query o devo farne due diverse?e come?
Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.
$select = "SELECT campo_id FROM tabella WHERE campo_id ='".$tuo_id."'";
$query = mysql_query($select)or die(mysql_error());
$result= mysql_fetch_array($query);
$row = mysql_affected_rows();
if($row > 0) {
$delete = "DELETE FORM tabella WHERE campo_id = '".$result['campo_id']."'";
$del = mysql_query($delete)or die(mysql_error());
}
tu fai la tua query DELETE con la condizione sull'id nel WHERE (senza sapere se l'ID esiste o meno), poi se vuoi sapere se esisteva puoi usare mysql_affected_rows(); per sapere quante linee sono state eliminate:
- 0 se l'ID non esisteva
- 1 (o +) se l'ID esisteva (ed era ripetuto)
se non esiste nessuna riga con l'ide che gli passo,mi da errore o passa oltre?
perche ho istruzioni del tipo:
$dele1="DELETE FROM mur_agev_dom WHERE agev_contatore='$id'";
$resdel1 = mysql_query($dele1);
$dele1="DELETE FROM mur_agev_non_dom WHERE agev_nd_contatore='$id'";
$resdel2 = mysql_query($dele2);
$dele3="DELETE FROM mur_allacciamenti WHERE allac_contatore='$id'";
$resdel3 = mysql_query($dele3);
quindi non vorrei mi si bloccasse tra una e l'altra
Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.
Se nn sbaglio passa oltre. Cmq basta che provi. Al massimo puoi fare per sicurezza una cosa del genere:
Fai una select x id dalla tabella dove ricavi il tuo $id.
$arrai_id = array();
£select = "select id form tabella";
$q = mysql_query($select);
While($res = mysql_fetch_array($q)){
$array_id[] = $re['id'];
}
$array_id conterra' tutti gli id della tabella
poi prima della DELETE fai.
if(in_array($id_che_dovrebbe_esistere, $array_id))
{
qui le operazioni..
}
cosi' controlli prima di cancellare se effettivamente esiste l'id nella tabella.
ma speravo di cavarmela con una sola istruzione, che ne so,qualcosa del tipo:if exit(id='1') allora delet from tabella where id='1'
Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.
se fai un DELETE e non trova nessuna riga da cancellare va in avanti e non ti dice niente.
Puoi benissimo farlo con una sola query
PS: testare non fa mai male, si imparano molte cose e sei sicuro se il tuo codice funziona oppure si blocca a causa di un errore ...