PDA

View Full Version : [PHP & mySql] problema di script


pataciolla
15-05-2008, 08:12
Data la mia naturale disattenzione ho letto il regolamento solo ora... perciò aggiorno con la dicitura corretta scusandomi per i ripetuti errori...:doh:

ciao a tutti... altro problemino...:bsod:

ho due pezzi di script praticamente uguali che lavorano su tabelle diverse... non riesco a capire perchè sul primo mi va tutto liscio e non segnala errore ...sul secondo invece mi visualizza errore nonostante i dati nel database li inserisca correttamente o non li inserisca se sono già presenti uguali (come era mia intenzione fare)!! però mi piacerebbe capire il motivo dell'errore..
:lamer: Voi direte... ma datti all'agricoltura... avreste ragione... :D

ecco gli script:

//PERSONAGGIO
$selpersonaggio = mysql_query("SELECT nome FROM personaggio WHERE nome = '$nomePersonaggio'");
$numpersonaggio = mysql_num_rows($selpersonaggio);
if ($numpersonaggio == 0) {
echo ("casino con successo <br>");
$querypersonaggio = "INSERT INTO personaggio (nome,ruolo)
VALUES ('$nomePersonaggio','$ruoloPersonaggio')";
$resultpersonaggio = mysql_query($querypersonaggio);
if (!$resultpersonaggio) {
die("Errore nella query9 $resultpersonaggio: " . mysql_error());
}
}


//ATTORE
$selattore = mysql_query("SELECT nome FROM attore WHERE nome = '$nomeAttore' AND cognome = '$cognomeAttore' AND data_nascita = '$dataNascitaAttore' AND data_morte = '$dataMorteAttore'");
$numattore = mysql_num_rows($selattore);
if ($numattore == 0) {
$queryattore = "INSERT INTO attore (nome,cognome,data_nascita,data_morte)
VALUES ('$nomeAttore','$cognomeAttore','$dataNascitaAttore','$dataMorteAttore')";
$resultattore = mysql_query($queryattore);
if (!$resultattore) {
die("Errore nella query1 $resultattore: " . mysql_error());
}
}



tanto per cambiare... aiutatemi vi prego.... :ave:
pata

kk3z
15-05-2008, 09:18
.... e l'errore sarebbe?

pataciolla
15-05-2008, 09:27
Errore nella query1 : Duplicate entry 'vr-v-0000-00-00-0000-00-00' for key 1

....succede se cerco di inserire una seconda volta gli stessi identici dati (ovviamente la prova la faccio con dati a caso...) ... il fatto è che non dovrebbe nemmeno arrivare al messaggio di errore perchè l'if non dovrebbe essere soddisfatto se un record uguale è già presente...

...non so se mi sono spiegata

pata

Hiskrtapps
15-05-2008, 09:41
guarda se è il caso di usare una REPLACE al posto della INSERT
magari fa al caso tuo