If et else?

manu
Invité n'ayant pas de compte PHPfrance

13 juil. 2006, 15:21

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 15:41

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

manu
Invité n'ayant pas de compte PHPfrance

13 juil. 2006, 16:09

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"];

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 16:10

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.

manu
Invité n'ayant pas de compte PHPfrance

13 juil. 2006, 16:24

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 16:28

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

manu
Invité n'ayant pas de compte PHPfrance

13 juil. 2006, 16:43

$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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 16:50

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.

manu
Invité n'ayant pas de compte PHPfrance

13 juil. 2006, 16:53

Je fais quoi alors, car la j'ai perdu toute notion! :cry:

manu
Invité n'ayant pas de compte PHPfrance

13 juil. 2006, 16:55

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!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

13 juil. 2006, 16:57

$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();