[PHP/SQL] Ce nom existe-t-il déjà ?
Résolu/Fermé
Warryur
Messages postés
97
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
28 mai 2011
-
23 avril 2011 à 22:03
Warryur Messages postés 97 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 mai 2011 - 24 avril 2011 à 18:22
Warryur Messages postés 97 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 mai 2011 - 24 avril 2011 à 18:22
A voir également:
- [PHP/SQL] Ce nom existe-t-il déjà ?
- Téléchargez cette image pour trouver le nom du fichier. il correspond au nom de cette loutre. comment s'appelle-t-elle ? - Forum HTML
- Easy php - Télécharger - Divers Web & Internet
- Trouver un numéro de portable avec un nom ✓ - Forum Mobile
- La création de contenu sous ce nom n’est pas autorisée. essayez un autre nom. ✓ - Forum Facebook
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
2 réponses
Bonjour
Pour voir si nom existe déjà, tu peux (entre autres possibilités) extraire de ta base les personnes ayant ce nom et compter le nombre de réponse avec la fonction mysql_num_rows
$req="SELECT * FROM personnages WHERE nom='".mysql_real_escape_string($nom)."'";
if (mysql_num_rows($req)==0) { // nom inconnu, on peut insérer
...
} else { // nom déjà connu
}
Pour voir si nom existe déjà, tu peux (entre autres possibilités) extraire de ta base les personnes ayant ce nom et compter le nombre de réponse avec la fonction mysql_num_rows
$req="SELECT * FROM personnages WHERE nom='".mysql_real_escape_string($nom)."'";
if (mysql_num_rows($req)==0) { // nom inconnu, on peut insérer
...
} else { // nom déjà connu
}
Les tests que tu as faits te permettent de savoir si les champs du formulaire ont été saisis ou non.
Ceux que je te proposent servent à vérifier si le nom est déjà présent dans la base : ce n'est pas ce que tu voulais ?
Il faut insérer le test après la sélection de la base (évidemment puisque je l'utilise)
Ceux que je te proposent servent à vérifier si le nom est déjà présent dans la base : ce n'est pas ce que tu voulais ?
Il faut insérer le test après la sélection de la base (évidemment puisque je l'utilise)
Warryur
Messages postés
97
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
28 mai 2011
1
Modifié par Warryur le 24/04/2011 à 17:09
Modifié par Warryur le 24/04/2011 à 17:09
Je pense pas faire comme il faut...
J'ai une erreur avec ce code (Warning: mysql_num_rows() expects parameter 1 to be resource, string given)
<?php // On commence par récupérer les champs if(isset($_POST['nom'])) $nom=$_POST['nom']; else $nom=""; if(isset($_POST['points'])) $points=$_POST['points']; else $prenom=""; //$req="SELECT * FROM personnages WHERE nom='".mysql_real_escape_string($nom)."'"; //if (mysql_num_rows($req)==0) { // connexion à la base $db = mysql_connect('localhost', 'root', 'MDP') or die('Erreur de connexion '.mysql_error()); // sélection de la base mysql_select_db('pointsrp',$db) or die('Erreur de selection '.mysql_error()); $req="SELECT * FROM personnages WHERE nom='".mysql_real_escape_string($nom)."'"; if (mysql_num_rows($req)==0) { // nom inconnu, on peut insérer // on écrit la requête sql $sql = "INSERT INTO personnages(id, nom, points) VALUES('','$nom','$points')"; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on affiche le résultat pour le visiteur echo '<font color="green">Le personnage a été ajouté à la base avec succès !</font>'; } else { echo 'existe deja'; } mysql_close(); // on ferme la connexion ?>
J'ai une erreur avec ce code (Warning: mysql_num_rows() expects parameter 1 to be resource, string given)
Pardon, c'est moi qui ai écrit une bêtise. J'ai sauté une étape, puisque je n'ai même pas fait de mysql_query :
$req="SELECT * FROM personnages WHERE nom='".mysql_real_escape_string($nom)."'";
$reponse= mysql_query($req);
if (mysql_num_rows($reponse)==0)
Sinon, je pense que tu l'as mis au bon endroit.
$req="SELECT * FROM personnages WHERE nom='".mysql_real_escape_string($nom)."'";
$reponse= mysql_query($req);
if (mysql_num_rows($reponse)==0)
Sinon, je pense que tu l'as mis au bon endroit.
Warryur
Messages postés
97
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
28 mai 2011
1
24 avril 2011 à 18:22
24 avril 2011 à 18:22
Ça fonctionne à merveille ;D
Merci !
Merci !
23 avril 2011 à 22:16
if(empty($nom) OR empty($points))
{
echo '<font color="red">Erreur : Vous n\'avez pas rempli tous les champs !</font>';
}
?
Merci :)