Verification a la BDD
Résolu
Flatron974
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
Flatron974 Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
Flatron974 Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais verifier si la variable envoyée en _POST exist dans la base mais il m'envoie
le message que vous etes pas membres..
Et je sais plus quoi faire pour modifier cela:(
donc merci de vos reponses.
ps: j'ai essayé avec ne boucle while mais cela donne la meme reponse..
Je voudrais verifier si la variable envoyée en _POST exist dans la base mais il m'envoie
le message que vous etes pas membres..
Et je sais plus quoi faire pour modifier cela:(
donc merci de vos reponses.
<?php if(isset($_POST['valider'])) { $login = $_POST['login']; if(!empty($login)) { mysql_connect('localhost','Flatron','452300') or die('impossible de se connecter a Mysql'); mysql_select_db('test') or die ('impossible de select la BDD'); $sql = 'SELECT login FROM users where login="'.$login.'"'; $req = mysql_query($sql) or die ('requete impossible a executer !'); $data = mysql_fetch_row($req) if($data[0] == 1) { session_start(); $_SESSION['id'] = session_id(); header('location:membre.php'); exit; } else { $message = "$login : Vous etes pas membre du sites! <a href =\"\" >s'inscrire</a>?"; } } else{ $message = "Veuillez remplir tout les champs !"; } }
ps: j'ai essayé avec ne boucle while mais cela donne la meme reponse..
1 réponse
Bonjour
SELECT login FROM...
if($data[0] == 1)
Tu as sélectionné le login.
Donc $data[0] contient le login, pas le nombre 1
Tu peux modifier par exemple :
Ça marchera à condition que le login existe une seule fois dans ta table. Sinon utilise if($data[0] > 0)
SELECT login FROM...
if($data[0] == 1)
Tu as sélectionné le login.
Donc $data[0] contient le login, pas le nombre 1
Tu peux modifier par exemple :
$sql = 'SELECT COUNT(*) FROM users where login="'.$login.'"';
Ça marchera à condition que le login existe une seule fois dans ta table. Sinon utilise if($data[0] > 0)
merci sa marche comme sur des roulettes :)
Tu peux m'expliquer le count(*) c est quoi il sert a quoi? etc..
merci
nb: Est ce que php ou mysql est sensible a la case
Mais pendant que j'y suis...
SELECT COUNT(*) FROM table WHERE condition renvoie une seule ligne, qui indique combien d'enregistrements de 'table' satisfont à la 'condition'.
php est sensible à la casse pour les noms des variables, pas pour les noms des fonctions. Ils sont un peu tordus, non ? substr() et SubStr(), c'est la même fonction, mais $Truc et $truc sont deux variables différentes.
http://www.php.net/manual/fr/language.variables.basics.php
https://www.php.net/manual/fr/functions.user-defined.php
Le langage SQL n'est pas sensible en ce qui concerne les mots clés (SELECT = SeLeCt) et les noms de colonnes et d'alias. Pour les noms des bases et des tables, ça dépend du système d'exploitation, car les bases et les tables correspondent à des dossiers et des fichiers -> insensibles à la casse sous Windows, sensibles pour UNIX et Linux. Mais Il ne faut pas mélanger plusieurs casses pour le nom de base ou de table dans une même requête, même sous Windows
http://dev.mysql.com/doc/refman/5.0/fr/name-case-sensitivity.html