2010-06-03 5 views
4

J'espérais avoir un petit aperçu à ce sujet.Vérifiez si l'adresse e-mail existe déjà si le message s'affiche, sinon ajoutez au tableau

Ce que j'ai est un formulaire de collecte de prénom, nom, ville, état et adresse e-mail. Ce formulaire utilise le plugin de validation jquery et le plugin de formulaire.

Je voudrais vérifier si le courrier électronique existe déjà ... si c'est le cas, cracher un message qui leur dit qu'ils existent déjà.

C'est ce que j'ai pour mon script update.php dans lequel la forme si vous utilisez pour ajouter des noms à la base de données MySQL:

<?php 
$con = mysql_connect("host","username","password"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("table", $con); 

$sql="INSERT INTO wallnames (ID, firstname, lastname, city, state, email) 
VALUES('NULL','$_POST[firstname]','$_POST[lastname]','$_POST[city]','$_POST[state]','$_POST[email]')"; 

if (!mysql_query($sql,$con)) 
{ 
die('Error: ' . mysql_error()); 
} 

echo "<p style=\width:350px; height:200px; vertical-align:middle;\><strong>Thank you for adding your info</strong></p>"; 

mysql_close($con); 
?> 
+1

Etes-vous sûr que l'insertion de '' NULL '' comme une chaîne est ce que vous voulez faire? Cela ne devrait-il pas être "NULL"? –

+0

Pour être tout à fait honnête, je suis un peu fraîche avec ce truc et j'ai vu un exemple et je l'ai juste branché. Il semble fonctionner avec. Si je retire NULL ... Je reçois une erreur Mark - Je ne suis pas sûr que je comprends complètement comment ajouter un index unique – TikaL13

+0

Il devrait juste être NULL sans la citation si vous voulez la valeur NULL sauf si vous voulez le mot 'nul'. Si vous utilisez Mysql, vous devez cliquer sur un bouton pour faire d'un champ un index unique. Sinon, utilisez simplement ce que Mark a écrit. – ggfan

Répondre

4

Vous devez create a unique index sur la colonne de courrier électronique, l'insert échouera si vous essayez d'insérer le même email deux fois.

CREATE UNIQUE INDEX ux_wallnames_email ON wallnames (email) 

Vous pouvez également exécuter cette requête pour tester si un email existe déjà:

SELECT EXISTS (SELECT NULL FROM wallnames WHERE email = '[email protected]') 

Il retourne soit 0 si l'e-mail est utilisé, ou 1 si elle existe déjà dans la table.

Questions connexes