comparer une variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comparer une variable

par jeff » 17 janv. 2006, 09:13

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

par Truc » 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

par Invité » 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

par Truc » 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.

par Invité » 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 !

par Invité » 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')

par jeff » 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') 

par Tictac » 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 ;)

par Invité » 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...."

par jeff » 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

par Invité » 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()

par albat » 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 ;)

par Invité » 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...........

par fab » 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

comparer une variable

par Invité » 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..........