Page 1 sur 1
Vérifier l'existence d'un mot dans une BDD
Posté : 05 mai 2006, 11:22
par nikitou
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
Posté : 05 mai 2006, 11:27
par Vaedan
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
Posté : 05 mai 2006, 11:31
par nikitou
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
Posté : 05 mai 2006, 11:35
par Vaedan
Tu pourrais faire
mysql_query( $req ) or die( $req . '<br />' . mysql_error() );
Posté : 05 mai 2006, 11:38
par nikitou
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
Re: Vérifier l'existence d'un mot dans une BDD
Posté : 05 mai 2006, 11:46
par xs_stef
Salut,
et avec quelque chose comme ça :
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['code'] == $Pass)
{
echo "OUI<br />";
}
else
{
echo "NON<br />";
}
}
?>
Posté : 05 mai 2006, 11:50
par nikitou
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

Posté : 05 mai 2006, 11:57
par xs_stef
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 ?
Posté : 05 mai 2006, 12:03
par nikitou
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
Posté : 05 mai 2006, 12:30
par xs_stef
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");
}
Posté : 05 mai 2006, 12:51
par nikitou
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

Posté : 05 mai 2006, 13:13
par nikitou
c'est bon j'ai trouvé une solution toute simple
$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é