comparer une variable

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2006, 00:27

bonsoir,

j'ai beau tester et chercher, ca ne fonctionne pas (je suis nul :oops: )
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..........

ViPHP
fab
ViPHP | 2657 Messages

15 janv. 2006, 01:39

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
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2006, 19:30

mysql fetch_array
mysql fetc_assoc
mysql fetch_result

ne donnent rien si ce n'est 1 message d'erreur...........

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

15 janv. 2006, 19:35

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

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2006, 20:04

<?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()

Mammouth du PHP | 1311 Messages

15 janv. 2006, 20:26

salut
$res = mysql_fetch_result($sql); 

Code : Tout sélectionner

Warning: Wrong parameter count for mysql_result()

$res=mysql_result($sql,0,'planete')
http://www.php.net

Invité
Invité n'ayant pas de compte PHPfrance

15 janv. 2006, 22:22

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

Eléphant du PHP | 353 Messages

15 janv. 2006, 22:31

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

Mammouth du PHP | 1311 Messages

15 janv. 2006, 22:39

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') 

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 22:56

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')


Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 23:09

$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 :wink:

le pb venait donc bien de la syntaxeWHERE 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 :shock: ...................)
Merci a vous tous !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 janv. 2006, 23:19

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.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 23:29

Merci, truc, il n'empeche que jeff en a quand meme mise une (apostrophe) :shock: 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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 janv. 2006, 23:34

il n'empeche que jeff en a quand meme mise une (apostrophe) :shock:
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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1311 Messages

17 janv. 2006, 09:13

le plus simple est d'utiliser sprintf qui te permet de preciser le type des tes variables