Verification a la BDD

Résolu/Fermé
Flatron974 Messages postés 19 Date d'inscription mardi 4 octobre 2011 Statut Membre Dernière intervention 29 mai 2013 - 20 août 2012 à 15:28
Flatron974 Messages postés 19 Date d'inscription mardi 4 octobre 2011 Statut Membre Dernière intervention 29 mai 2013 - 21 août 2012 à 04:02
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
20 août 2012 à 16:02
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 mardi 4 octobre 2011 Statut Membre Dernière intervention 29 mai 2013
Modifié par Flatron974 le 20/08/2012 à 18:58
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
20 août 2012 à 21:30
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 mardi 4 octobre 2011 Statut Membre Dernière intervention 29 mai 2013
21 août 2012 à 04:02
Ok merci pour les réponses :)
0