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   -
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.
<?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

Utilisateur anonyme
 
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 :
$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)
0
Flatron974 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
salut,
merci sa marche comme sur des roulettes :)
$sql = 'SELECT COUNT(*) FROM users..

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
0
Utilisateur anonyme
 
Les réponses à toutes ces questions sont dans les manuels. C'est là que j'ai appris ;)
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
0
Flatron974 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Ok merci pour les réponses :)
0