JeuWeb - Crée ton jeu par navigateur
Requête qui ne fait pas tout - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Requête qui ne fait pas tout (/showthread.php?tid=3270)

Pages : 1 2


RE: requete qui fait pas tout - Sephi-Chan - 13-11-2008

Alors ça veut dire que tout est normal.

La variable $localisation est une chaîne vide. Le in_array() renvoie donc false. La redirection appliquée est la bonne.

Code PHP :
<?php 
$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'];
$localisation = basename($data['image'], '.gif');
La partie à retravailler est donc ici : $data['image'] ne contient pas ce que tu veux. Ou bien c'est le basename()… Essaye de faire des var_dump() de $data, et de $image, tu verras bien où ça merde.


Sephi-Chan


RE: requete qui fait pas tout - Rouge - 15-11-2008

Voilà la dernière mouture (et je m'y perds à force et je ne comprends rien :pleure2Smile

Code PHP :
<?php

session_start
();

$id = $_SESSION['id'];

require_once
'connexion.php';

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


$result = mysql_query($res) 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);
var_dump($data);

$image = $data['image'];
var_dump($image);
$localisation = basename($data['image'], '.gif');

var_dump($localisation);
$inArray = in_array ($localisation, array('prairie', 'foret', 'lac', 'piste', 'riviere', 'champ', 'colline', 'desert', 'ville'));
var_dump($inArray);
if(
$inArray === true){


$sql = "UPDATE membres SET localisation= '$localisation' WHERE id = $id;";

$_SESSION['localisation'] = $localisation;


mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());

include
'quel_'.$localisation.'.php' ;

}

else {


include
'create_relief.php';
}

mysql_close();

?>

et voilà le message erreur:

array(1) { ["image"]=> string(18) "./relief/piste.gif" } string(18) "./relief/piste.gif" string(5) "piste" bool(true) 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
$data['image'] est bon, $data idem, et $localisation correspond (quel_piste...)


[RESOLU] requete qui fait pas tout - Rouge - 16-11-2008

:wowowow:
Ca y est, tout est ok. J'ai viré les var_dump et modifié le fichier destination et tout s'affiche maintenant correctement. En fait, il va falloir changer quelques lignes dans certains scripts:
$posx AND posy = $posy;" à la place de {$posx} AND ${posy} qui ne semble plus d'actualité.


RE: [ RESOLU ] requete qui fait pas tout - Sephi-Chan - 16-11-2008

Tu aurais tout de suite su tout ça si tu plaçais tes requêtes SQL dans des variables, afin de les afficher et de les tester dans un requêteur comme celui de phpMyAdmin.

En tout cas, une bonne chose de faîte.


Sephi-Chan