Page 1 sur 1

If et else?

Posté : 13 juil. 2006, 15:21
par manu
Bonjour, j'essaye de résoudre un petit soucis avec les if et else!
J'ai ma page search.php
Sur celle ci, les membres qui se sont enregistrer peuevnt faire une recherche de leur compte avec les 3 champs:
(code,pseudo,email)
Je voudrais que si les 3 champs correspondent bien a ceux dans la bd, leur compte s'affiche, mais que ci s'est pas bon, alors que cela indique "Pas de compte chez nous"!
j'ai essayer ceci:
$sql = mysql_connect ( $Host , $User , $Mdp ) or die('Impossible de se connecter');
mysql_select_db($Base) or die('Impossible de selectionner la base');
// on crée la requete SQL

$sql = "SELECT * FROM matable where code='$code' AND pseudo='$pseudo' AND email='$email'";
if ($data == "code" && $data == "pseudo" && $data == "email")
{
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// enregistrement
while($data = mysql_fetch_array($req))
{
$code=$data["code"];
ect....
merci de votre aide

Posté : 13 juil. 2006, 15:41
par charabia
Calcules le nombre d'enregistrements que ta requête de donne avec mysql_num_rows.

Si tu as 0, cela signifie que la personne n'est pas enregistrée. Si c'est différent de 0 alors elle rentre dans son compte.
<?php
$sql=mysql_query("SELECT * FROM matable where code='$code' AND pseudo='$pseudo' AND email='$email'");
$nbligne=mysql_num_rows($sql);

if($nbligne==0)
{
//non enregistré message erreur
}
else
{
//ok enregistré, affichage info
}
?>

Posté : 13 juil. 2006, 16:09
par manu
Salut,
j'ai essayer tes lignes, mais j'ai ceic a l'ecran maintenant:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/sdb/2/3/search.php on line 24
et voici mes lignes de code:
$sql = mysql_connect ( $Host , $User , $Mdp ) or die('Impossible de se connecter');
mysql_select_db($Base) or die('Impossible de selectionner la base');
// on crée la requete SQL
$sql = "SELECT * FROM matable where code='$code' AND pseudo='$pseudo' AND email='$email'"; 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nbligne=mysql_num_rows($sql); 
if($nbligne==0)
{ 
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req)) 
{
$code=$data["code"];
$pseudo=$data["pseudo"];
$email=$data["email"];

Posté : 13 juil. 2006, 16:10
par charabia
Normal
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$nbligne=mysql_num_rows($req);
Tu as laissé $sql alors que tu utilises $req.

Posté : 13 juil. 2006, 16:24
par manu
La par contre plus d'erreur!
Il ne m'affcihe plus rien!
Si il y a un inscrit il m'affiche:
"Désoler pas de compte chez nous"!
et si qqn qui n'est pas inscrit essaye, la il n'indique rien!
Je comprends pas trop la
merci de ton aide

Posté : 13 juil. 2006, 16:28
par charabia
Montres nous ton code complet. Tu ne t'es pas trompé par hasard ? C'est si c'est égal à 0 que tu as le message d'erreur. Là je vois que tu essaies d'afficher les données si c'est égal à 0...

Posté : 13 juil. 2006, 16:43
par manu
$sql = mysql_connect ( $Host , $User , $Mdp ) or die('Impossible de se connecter');
mysql_select_db($Base) or die('Impossible de selectionner la base');
// on crée la requete SQL
$sql = "SELECT * FROM mailingGV where code='$code' AND pseudo='$pseudo' AND email='$email'"; 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nbligne=mysql_num_rows($req); 
if($nbligne==0)
{ 
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req)) 
{
$code=$data["code"];
$pseudo=$data["pseudo"];
$email=$data["email"];

echo"	Attention votre demande sera effective et vous ne pourrez plus l'annuler!<br><br>";
// on affiche les informations de l'enregistrement en cours
echo '<b>'.$data['code'].' '.$data['pseudo'].' '.$data['email'].' </b>'; 
}
}
else

echo"Désoler pas de compte chez nous";
// on ferme la connexion à mysql
mysql_close(); 
?> 
Voila

Posté : 13 juil. 2006, 16:50
par charabia
C'est bien ce que j'ai dit. Tu as mélangé le tout lol

Si = 0 alors pas d'enregistrement donc "Désoler pas de compte chez nous"

Sinon parcours de la base.

Tu as fait le contraire.

Posté : 13 juil. 2006, 16:53
par manu
Je fais quoi alors, car la j'ai perdu toute notion! :cry:

Posté : 13 juil. 2006, 16:55
par manu
Euh! Mes notions sont revenus! :D
Il suffit jsute de changer le 0 par 1!
Et sa fonctionne!
Merci de ton aide!
PS: J'ai un autre question!
Je vais ouvrir un autre post pour cela!

Posté : 13 juil. 2006, 16:57
par charabia
$sql = mysql_connect ( $Host , $User , $Mdp ) or die('Impossible de se connecter'); 
mysql_select_db($Base) or die('Impossible de selectionner la base'); 
// on crée la requete SQL 
$sql = "SELECT * FROM mailingGV where code='$code' AND pseudo='$pseudo' AND email='$email'"; 
// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$nbligne=mysql_num_rows($req);

if($nbligne==0) 
{ 
	echo "Désoler pas de compte chez nous";
} 
else
{
	// on fait une boucle qui va faire un tour pour chaque enregistrement 
	while($data = mysql_fetch_array($req)) 
	{
	$code=$data["code"]; 
	$pseudo=$data["pseudo"]; 
	$email=$data["email"]; 
	
	echo"    Attention votre demande sera effective et vous ne pourrez plus l'annuler!<br><br>"; 
	// on affiche les informations de l'enregistrement en cours 
	echo '<b>'.$data['code'].' '.$data['pseudo'].' '.$data['email'].' </b>'; 
	}
}

// on ferme la connexion à mysql 
mysql_close();