Page 1 sur 1

requete qui marche pas mais...

Posté : 11 nov. 2008, 22:42
par Rouge
la requete suivie du message erreur:
<?php

  session_start();

  $id = $_SESSION['id'];

  require_once 'connexion.php';



  $sql = "SELECT posx, posy FROM membres WHERE id = '$id'";

  $result = mysql_query($sql) or die(mysql_error()); 

  $rsa = mysql_fetch_assoc($result);


  $posx = $rsa['posx'];

  $posy = $rsa['posy'];


  $req = "SELECT image FROM map WHERE posx = '$posx' AND posy = '$posy'";

  $res = mysql_query($req) or die(mysql_error()); 

  $data = mysql_fetch_assoc($res);

  $image= $data['image'];
  

  if ($data['image'] == './relief/piste.gif')
{
include 'detailmap_piste.php';
//echo' que pasa el paso?';
}
else
{
include 'create_relief.php';
}

  mysql_close();

?>
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 '' at line 1

Pourtant, lorsque je valide le echo dans la boucle, celui ci s'affiche bien :?

Re: requete qui marche pas mais...

Posté : 11 nov. 2008, 23:22
par chrislabricole
$sql = "SELECT posx, posy FROM membres WHERE id = '$id'";
$sql = 'SELECT posx, posy FROM membres WHERE id = "'.$id.'"'; 
$req = "SELECT image FROM map WHERE posx = '$posx' AND posy = '$posy'";
$req = 'SELECT image FROM map WHERE posx="'.$posx.'" AND posy="'.$posy."';
C'est déjà mieux, c'est une erreur SQL, pas PHP ;)

Posté : 11 nov. 2008, 23:24
par @rthur
Bonsoir Rouge,

Tout d'abord, juste une petite remarque sur la forme, les formules de politesse "Bonjour", "Merci", etc... ne sont pas en option, surtout lorsqu'il s'agit de son 1er post sur PHPfrance.

Concernant ton problème, il suffit que tu affiches ta requête à l'écran puis que tu la testes dans phpMyAdmin afin de la débuguer.

Posté : 12 nov. 2008, 23:18
par Rouge
Rebonsoir, et désolé pour le ton sec du message :oops:

Pour chris, désolé, mais le fait de protéger les variables numériques avec des points des quotes etc est encore pire, le script reste grisé (donc inopérant à coup sur) :roll:

Posté : 12 nov. 2008, 23:19
par charabia
As-tu fait ce que Arthur t'a proposé ?

Posté : 12 nov. 2008, 23:39
par Rouge
Bon, j'ai rebidouillé le code et y'a du mieux, mais le résultat escompté, logique et "réel" n'est pas encore au rdv:
<?php

  session_start();

  $id = $_SESSION['id'];

  require_once 'connexion.php';

$sql = mysql_query("SELECT posx, posy FROM membres WHERE id = '.$id.'")or die(mysql_error()); 



  $rsa = mysql_fetch_assoc($sql);


  $posx = $rsa['posx'];

  $posy = $rsa['posy'];

$req = mysql_query("SELECT image FROM map WHERE posx= '.$posx.' AND posy= '.$posy.'")or die(mysql_error()); 



  $data = mysql_fetch_assoc($req);

  $image= $data['image'];
  

  if ($data['image'] == './relief/piste.gif')
{
include 'detailmap_piste.php';
//echo' que pasa el paso?';
}
else
{
include 'create_relief.php';
}

  mysql_close();

?> 
le script redirige vers "create_relief.php" au lieu de "detailmap_piste.php" :roll:
C'est à croire que le include n'est plus pris en compte :?

Posté : 12 nov. 2008, 23:51
par charabia
Vérifie que les variables $id, $posx et $posy ont bien une valeur.

Posté : 24 nov. 2008, 19:10
par Rouge
De cette façon cela fonctionne :wink:


<?php

  session_start();

  $id = $_SESSION['id'];

  require_once 'connexion.php';

$sql = mysql_query("SELECT posx, posy FROM membres WHERE id = $id; ")or die(mysql_error()); 



  $rsa = mysql_fetch_assoc($sql);


  $posx = $rsa['posx'];

  $posy = $rsa['posy'];

$req = mysql_query("SELECT image FROM map WHERE posx=  $posx   AND  posy=  $posy; ") or die(mysql_error()); 



  $data = mysql_fetch_assoc($req);

  $image= $data['image'];
  

  if ($data['image'] == './relief/piste.gif')
{
include 'detailmap_piste.php';

}
else
{
include 'create_relief.php';
}

  mysql_close();

?>