Vérifier l'existence d'un mot dans une BDD

Eléphant du PHP | 186 Messages

05 mai 2006, 11:22

Bonjour,

Voila j'ai une base ou j'entre des mots du type :
aa
aaa
aab etc...

ensuite je voudrais testé l'existence de ces mots

Je fais comme ceci :
<?
mysql_connect("", "", "");
mysql_select_db("");

$reponse = mysql_query("SELECT * FROM xxxx");
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['xxxx'] == "$Pass")
{
echo "OUI";
} 
else
{
echo "NON";
} 
}
?>
la variable $Pass étant le mot à testé

Ce que je ne comprends pas c'est que je me retrouve toujours avec un message du type :
OUINON
NONOUI
NONNON

alors que je devrais plutot avoir
OUI
NON

Quelqu'un pourrait m'aider

Merci d'avance à tous

Eléphant du PHP | 493 Messages

05 mai 2006, 11:27

Je pense que tu ne comprends pas bien le SQL ! La synthaxe est :

Code : Tout sélectionner

SELECT * FROM table ou SELECT user, pass, id, email, etc FROM table
Ainsi ce n'est pas
$donnees[ 'xxxx' ]
mais
$donnees[ 'pass' ] // par exemple

Eléphant du PHP | 186 Messages

05 mai 2006, 11:31

non ça j'ai compris c'est que en mettant des xxx j'ai porté à la confusion

Voila comme c'est réellment :
$reponse = mysql_query("SELECT * FROM xxxx");
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['code'] == "$Pass")
code étant ma collonne où sont stockés mes mots

Eléphant du PHP | 493 Messages

05 mai 2006, 11:35

Tu pourrais faire
mysql_query( $req ) or die( $req . '<br />' . mysql_error() );

Eléphant du PHP | 186 Messages

05 mai 2006, 11:38

comment ça je place cela à quel endroit ??

a quoi correspond $reg ?

merci à toi de m'aider

mais la ça m'énerve car sa fontionne mais ça me mets plusieurs fois les echo ou j'ai l'impression qu'ils ne fontionnent pas bien

Eléphanteau du PHP | 38 Messages

05 mai 2006, 11:46

Salut,
et avec quelque chose comme ça :
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['code'] == $Pass)
{
echo "OUI<br />";
} 
else
{
echo "NON<br />";
} 
}
?>

Eléphant du PHP | 186 Messages

05 mai 2006, 11:50

oui mais cela ne m'avancera pas car ensuite moi je test la réponse donnée par ce script avec :
$r=@file("http://www.monsite.com/mapage.php?Pass=lecode"); 

// on teste la réponse du serveur
 if (ereg("NON",$r[0])) {
// Le serveur a répondu NON : l'accès est donc refusé
echo "NON";
 }
 if (ereg("OUI",$r[0])) {
// Le serveur a répondu OUI : l'accès est donc accepté
echo "OUI bravo";
 }
Tu vois le truc ??

Donc le coup du <br /> ne m'aide pas énormément mais merci tout de meme :wink:

Eléphanteau du PHP | 38 Messages

05 mai 2006, 11:57

Désolé, mais alors un truc m'échappe, pourquoi tu ne fais par une requête en vérifiant $Pass, et si tu n'as pas de résultat l'accès est NON et si mysql_num_rows > 0 alors l'accès est OUI ?

Eléphant du PHP | 186 Messages

05 mai 2006, 12:03

tu peux m'en dire plus car la je fais déjà une requete dans mon script pour savoir si $Pass existe dans ma base

Merci d'avance

Eléphanteau du PHP | 38 Messages

05 mai 2006, 12:30

A l'arrache, ça ferais ça :
$reponse = mysql_query("SELECT * FROM xxxx WHERE pass='".$Pass."'");
$nbrReponse = mysql_num_rows($reponse);
if($nbrReponse>0) { // il y a des réponses, on approfondit
while($db=mysql_fetch_array($reponse)) {
echo("OUI");
}
} else { // il n'y a pas de réponses
echo("pas de réponses");
}

Eléphant du PHP | 186 Messages

05 mai 2006, 12:51

merci j'ai testé mais ça n'a pas fontionné

Le probleme exact que j'ai est que avec le script si j'ai 4 valeur dans mon tableau et que la valeur 2 est évalué ok

j'aurais en réponse :

NONOUINONNON

au lieu d'avoir juste OUI car la valeur est présente dans ma base

:cry:

Eléphant du PHP | 186 Messages

05 mai 2006, 13:13

c'est bon j'ai trouvé une solution toute simple :lol:
$reponse = mysql_query("SELECT * FROM xxxx");
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['code'] != "$ok")
{
$non++;
} 
else
{
$oui++;
} 
}


if ($oui == 1)
{
echo "OUI";
}
else
{
echo "NON";
}
et voila merci à tout ceux qui m'ont aidé