PROBLEMA php e database

Pubblicità

Io Tu

Nuovo Utente
Messaggi
7
Reazioni
0
Punteggio
22
Ciao a tutti, sto programmando uno script in php, che crea in un database una riga di vari dati, e per identificarsi utilizza la variabile "nometest". Ecco il problema:

Se nel database esiste gia una riga con nometest= x, e un'altra persona ne crea un'altra con lo stesso nome il database lo accetta lo stesso.

C'è un modo di far si che prima che si registrino i dati se esiste gia una riga con nometest ugale alla variabile che l'utente inserisce nel form , allora stampa un messaggio a video??

Grazie in anticipo.:thanks:
 
Credo che l'unica soluzione possibile sia precaricare tutti i dati presenti nel database (SELECT *) e confrontarli con quanto inserito nel form PRIMA di inviarli nel database.
 
Praticamente una volta preso che hai il dato inserito dall'utente nel form (nel mio esempio $nometest_del_form), verifichi tramite una query che non sia già presente.

Una cosa di questo tipo:
Codice:
// Seleziona tutti i dati della tabella tua_tabella che hanno come nometest il $nometest_del_form

$query=mysql_query("SELECT * FROM tua_tabella WHERE nometest='".$nometest_del_form."' ");


// vedi numero delle righe del risultato della query

$duplicato=mysql_num_rows($query);

// Se sono 0 inserisci, else errore

if ($duplicato == 0) {

  // inserisci nel database

} else {

 // errore

}
 
Ultima modifica:
Fantastico! Ora funziona.

Sempre per la stesso form, ho notato che funziona tutto, ma se metto l'apostrofo mysql mi da errore, perchè l'interpreta come 2 variabili, c'è un modo per risolvere?
Grazie in anticipo
 
Singolo e doppio apice sono caratteri speciali.

EDIT: Scusa ma avevo interpretato male il tuo messaggio.

I caratteri ' e " in una stringa devono essere preceduti da un backslash \

Per aggiungerli automaticamente puoi utilizzare la funzione addslashes prima di inserire i dati nel database.

E' comunque buona norma validare SEMPRE i dati inseriti in un form prima di eseguire operazioni sul database, se no sei a rischio (tra le altre cose) SQL injection: PHP 5 Form Validation
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top