Page 1 sur 1

jene vois pas ou est le pb de condition?

Posté : 19 mai 2007, 19:43
par YVES
Bonjour,
ce bout de script ne fonctionne pas, pourquoi?
<?php
session_start();
$id = $_SESSION['id'];
include 'connexion.php';
$sql = "SELECT qstockvehicule ".
       "FROM membres  ".
       "WHERE id = ". $id .";"; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
    $data = mysql_fetch_assoc($res);
if($data>30) 
       {
header ("Location: alertedepsurcharge.htm");
}

Posté : 19 mai 2007, 19:50
par Sékiltoyai
Parce que...

Ecoute, si tu crois qu'on est devin, ou bien alors qu'on a envie de chercher longtemps quelquechose qui nous serait apparu tout de suite comme une évidence si on avait un peu plus d'explications, tu te trompes.

Donc, si tu veux qu'on t'aide, il va falloir en dire un peu plus...

Posté : 19 mai 2007, 22:23
par YVES
<?php
session_start();
$id = $_SESSION['id'];
include 'connexion.php';
$sql = "SELECT qstockvehicule ".
       "FROM membres  ".
       "WHERE id = ". $id .""; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
    $data = mysql_fetch_assoc($res);
if($data['qstockvehicule'] >30)
       {
header ("Location: alertedepsurcharge.htm");
}
else if (isset($_POST['DIR']))
   {
switch ($_POST['DIR']){
    case "N":
        $dirx = $posx;
    $diry = $posy-1;
$sql = "UPDATE membres SET posx=posx, posy=posy-1, ptdep=ptdep-1, vie=vie-0.5, uvehicule=uvehicule+0.5  WHERE id = ". $id .";"; 
    mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
    $_SESSION['ptdep']=$_SESSION['ptdep']-1;
	$_SESSION['posx']=$_SESSION['posx'];
	$_SESSION['posy']=$_SESSION['posy']-1;
    $_SESSION['vie']=$_SESSION['vie']-0.5;
	$_SESSION['uvehicule']=$_SESSION['uvehicule']+0.5;
        header("Location: locaperso.php");
   break;
    case "S":
        $dirx = $posx;
    $diry = $posy+1;
$sq2 = "UPDATE membres SET posx=posx, posy=posy+1, ptdep=ptdep-1, vie=vie-0.5, uvehicule=uvehicule+0.5  WHERE id = ". $id .";"; 
    mysql_query($sq2) or die('Erreur SQL '.$sq2.'<br>'.mysql_error());
    $_SESSION['ptdep']=$_SESSION['ptdep']-1;
	$_SESSION['posx']=$_SESSION['posx'];
	$_SESSION['posy']=$_SESSION['posy']+1;
    $_SESSION['vie']=$_SESSION['vie']-0.5;
	$_SESSION['uvehicule']=$_SESSION['uvehicule']+0.5;
        header("Location: locaperso.php");
   break;
    case "E":
        $dirx = $posx+1;
    $diry = $posy;
$sq3 = "UPDATE membres SET posx=posx+1, posy=posy, ptdep=ptdep-1, vie=vie-0.5, uvehicule=uvehicule+0.5   WHERE id = ". $id .";"; 
    mysql_query($sq3) or die('Erreur SQL '.$sq3.'<br>'.mysql_error());
    $_SESSION['ptdep']=$_SESSION['ptdep']-1;
	$_SESSION['posx']=$_SESSION['posx']+1;
	$_SESSION['posy']=$_SESSION['posy'];
    $_SESSION['vie']=$_SESSION['vie']-0.5;
	$_SESSION['uvehicule']=$_SESSION['uvehicule']+0.5;
        header("Location: locaperso.php");
   break;
    case "O":
        $dirx = $posx-1;
    $diry = $posy;
$sq4 = "UPDATE membres SET posx=posx-1, posy=posy, ptdep=ptdep-1, vie=vie-0.5, uvehicule=uvehicule+0.5   WHERE id = ". $id .";"; 
    mysql_query($sq4) or die('Erreur SQL '.$sq4.'<br>'.mysql_error());
    $_SESSION['ptdep']=$_SESSION['ptdep']-1;
	$_SESSION['posx']=$_SESSION['posx']-1;
	$_SESSION['posy']=$_SESSION['posy'];
    $_SESSION['vie']=$_SESSION['vie']-0.5;
	$_SESSION['uvehicule']=$_SESSION['uvehicule']+0.5;
        header("Location: locaperso.php");
   break;
  }
	header("Location: affichemap.php");
 }
mysql_close();
?>

Posté : 19 mai 2007, 23:31
par Sékiltoyai
:shock:
Je crois que tu n'as pas compris là. Nous donner plus de code ne nous aidera pas à régler le problème. Mais, quand tu dis "ca marche pas", c'est quand même super générique. Si tu ne nous donnes aucune erreur, aucune précision sur ce qui ne marche pas, je vois mal comment on peut t'aider.

Et puis le truc je viens, je poste une ligne, un code, et puis basta, je trouve ca un peu irrespectueux, enfin bon, peux être me trompe-je...

Posté : 20 mai 2007, 00:06
par YVES
Quand je dis que cela ne marche pas, c'est le premier select qui n'est pas pris en compte
$sql = "SELECT qstockvehicule ".............

le script passe à travers au lieu de rediriger vers la page "alertedepsurcharge.htm"

that's all :wink:

Posté : 20 mai 2007, 00:40
par momox
Le problème n'est pas au niveau de la requête en elle même...
Tu veux vérifier que qstockvehicule n'est pas supérieur a 30.
Quand tu fais $data = mysql_fetch_assoc($res);, tu récuperes un tableau du premier résultat renvoyé par la requete et le pointeur interne se déplace sur le résultat suivant si il y a.
Donc avec $data tu as le premier résultat de ta requete, le tout dans un tableau.
Donc c'est plutôt $data['qstockvehicule'] qui contient la valeur numérique qstockvehicule et non $data ;)

Posté : 20 mai 2007, 22:59
par YVES
désolé, mais meme avec ['qstockvehicule']
la condition n'est pas prise en compte :cry:

Posté : 21 mai 2007, 07:30
par Ultim4T0m
Fais peut-être un echo de $date['qstockvehicule'] pour voir ce qui t'est retourné.

Posté : 21 mai 2007, 14:19
par YVES
l'echo n'affiche rien, la condition n'est tjrs pas prise en compte :?
Ce qui est curieux, c'est que je viens de m'apercevoir que j'ai au moins 5 autres scripts fonctionnant sur le meme principe et qui zappent la première condition!

Posté : 21 mai 2007, 15:48
par mere-teresa
var_dump($data);
//te permet de voir si $data est > ou < à 30

Posté : 21 mai 2007, 16:33
par YVES
voilà une astuce? qui fonctionne!
$surcharge= "SELECT qstockvehicule ".
       "FROM membres  ".
       "WHERE id = ". $id .";"; 
$res=mysql_query($surcharge) or die('Erreur SQL '.$surcharge.'<br>'.mysql_error());
($data = mysql_result($res,0,'qstockvehicule'));
if ($data>30)
{
header("Location: alertedepsurcharge.htm");
}
etc..etc..etc....