requete qui marche pas mais...

Eléphanteau du PHP | 15 Messages

11 nov. 2008, 22:42

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 :?
Modifié en dernier par Rouge le 24 nov. 2008, 19:11, modifié 1 fois.

Mammouth du PHP | 959 Messages

11 nov. 2008, 23:22

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 nov. 2008, 23:24

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.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 15 Messages

12 nov. 2008, 23:18

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:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

12 nov. 2008, 23:19

As-tu fait ce que Arthur t'a proposé ?

Eléphanteau du PHP | 15 Messages

12 nov. 2008, 23:39

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 :?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

12 nov. 2008, 23:51

Vérifie que les variables $id, $posx et $posy ont bien une valeur.

Eléphanteau du PHP | 15 Messages

24 nov. 2008, 19:10

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

?>