Page 1 sur 1
comparer une variable
Posté : 15 janv. 2006, 00:27
par Invité
bonsoir,
j'ai beau tester et chercher, ca ne fonctionne pas (je suis nul

)
J'aimerais comparer une variable qui est dans ma table...
Voila ce que j'ai fait mais ca ne marche pas:
<?php
$db= mysql_connect(localhost, xxx, xxx) or die("Impossible de se connecter à la base de données");
mysql_select_db('xxxl',$db) or die('Erreur de selection base'.mysql_error());
$sql= " SELECT planete FROM membres WHERE id = ". $id .";";
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
$res = mysql_num_rows($sql);
if ($res=='./images/verrou.gif')
{
echo '<center><font color="red">Désolé, mais vous avez dejà joué. </font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
}
else
{
bla bla bla bla..........
Posté : 15 janv. 2006, 01:39
par fab
mysql_num_rows retourne le nombre d'enregistrement correspondant a ta requete donc surement pas ce que tu veux:)
regarde du coté de mysql_result , mysql_fetch_array
Posté : 15 janv. 2006, 19:30
par Invité
mysql fetch_array
mysql fetc_assoc
mysql fetch_result
ne donnent rien si ce n'est 1 message d'erreur...........
Posté : 15 janv. 2006, 19:35
par albat
Tu as dû te planter dans ta syntaxe car mysql_result devrait répondre à ta recherche.
Profites-en pour faire un petit tour sur
www.mysql.com 
Posté : 15 janv. 2006, 20:04
par Invité
<?php
session_start() ;
?>
<?php
$db= mysql_connect(localhost, xxx, xxx) or die("Impossible de se connecter à la base de données");
mysql_select_db('xxxl',$db) or die('Erreur de selection base'.mysql_error());
$sql= " SELECT planete FROM membres WHERE id = ". $id .";";
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
$res = mysql_fetch_result($sql);
if ($res=='./images/verrou.gif')
{
echo '<center><font color="red">Désolé, mais vous avez dejà joué. </font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
mysql_close();
}
?>
avec while j'ai le meme message d'erreur, à savoir:
Warning: Wrong parameter count for mysql_result()
Posté : 15 janv. 2006, 20:26
par jeff
salut
$res = mysql_fetch_result($sql);
$res=mysql_result($sql,0,'planete')
http://www.php.net
Posté : 15 janv. 2006, 22:22
par Invité
<?php
session_start() ;
?>
<?php
$db= mysql_connect(localhost, xxx, xxx) or die("Impossible de se connecter à la base de données");
mysql_select_db('xxxl',$db) or die('Erreur de selection base'.mysql_error());
$sql= " SELECT planete FROM membres WHERE id = ". $id .";";
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($res = mysql_result($sql,0,'gestion'));
if ($res=='./images/verrou.gif')
{
echo '<center><font color="red">Désolé, mais vous avez dejà joué. </font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
mysql_close();
}
?>
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/xxxx/public_html/xxxx.php on line 9
Parse error: parse error, unexpected T_WHILE
J'ai rajouté (me semblait-il?) une parenthèse à la fin de la requète "$res==......etc...."
Posté : 15 janv. 2006, 22:31
par Tictac
Voilà le code corrigé !!
<?php
session_start() ;
?>
<?php
$db= mysql_connect('localhost', 'xxx', 'xxx') or die("Impossible de se connecter à la base de données");
mysql_select_db('xxxl',$db) or die('Erreur de selection base'.mysql_error());
$qry_sql= mysql_query("SELECT planete FROM membres WHERE id ='$id'") or die ('Erreur SQL '.$sql.'<br>'.mysql_error());
$res = mysql_fetch_assoc($qry_sql)
if ($res['planete'] == './images/verrou.gif')
{
echo '<center><font color=\"red\">Désolé, mais vous avez dejà joué. </font></center>
<center><font color=\"black\"><a href=\"page_membre.php\">retour page membre</a></font></center>';
}
mysql_close();
?>
si tu as des questions vis à vis de ce qui a été fait , n'hesite pas

Posté : 15 janv. 2006, 22:39
par jeff
ta requete SQL est fausse
Code : Tout sélectionner
$sql= " SELECT planete FROM membres WHERE id = ". $id .";";
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
$sql= " SELECT planete FROM membres WHERE id = ". $id;
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'planete'));
if ($data=='./images/verrou.gif')
Posté : 16 janv. 2006, 22:56
par Invité
les deux soluces présentent des messages d'erreur, j'ai testé ainsi et voila le message erreur:
Erreur SQL Resource id #3
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #3' at line 1
$sql= mysql_query("SELECT planete FROM membres WHERE id = '". $id ."'");
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'planete'));
if ($data== './images/verrou.gif')
Posté : 16 janv. 2006, 23:09
par Invité
$sql= " SELECT planete FROM membres WHERE id = ". $id;
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'planete'));
if ($data== './images/verrou.gif')
désolé Jeff, j'ai du merdé à un moment, c'est bien ta soluce qui est good
le pb venait donc bien de la syntaxe
WHERE id = ". $id;
ce que j'aimerais comprendre, c'est pouquoi dans certains cas on met
WHERE id = '". $id.'"; vous voyez ce que je veux dire (les apostrophes et les quotes

...................)
Merci a vous tous !
Posté : 16 janv. 2006, 23:19
par Truc
Les apostrophes signalent une chaine de caratère donc qd il s'agit d'un champ de type "numérique" les apostrophes sont obsolètes et mêmes fausse.
Dans le cas d'un id (de type int) on n'en met pas alors que si tu as un champ texte comme le "Pseudo" alors il faut préciser qu'il s'agit d'une chaine de caratère.
Posté : 16 janv. 2006, 23:29
par Invité
Merci, truc, il n'empeche que jeff en a quand meme mise une (apostrophe)

mais certes, la variable n'est pas "fermée" avec la seconde apostrophe. j'essaierai donc de me rappeler que pour les champs int les apostrophes foutent la cagaille, merci encore !!!!l
Posté : 16 janv. 2006, 23:34
par Truc
il n'empeche que jeff en a quand meme mise une (apostrophe)
Euh.. non
$sql= " SELECT planete FROM membres WHERE id = ". $id;
en rouge c'est un guillemet qui ferme la chaine de caratère suivi du point pour concaténer l'id. En sortie tu as donc un truc du genre:
SELECT planete FROM membres WHERE id = 256
san apostrophes et guillemets
Posté : 17 janv. 2006, 09:13
par jeff
le plus simple est d'utiliser sprintf qui te permet de preciser le type des tes variables