pb update session?

Eléphant du PHP | 250 Messages

21 févr. 2007, 00:10

bonsoir, je n'arrive pas à afficher la variable ressource (pourtant, la mise à jour en table se fait correctement mais pas l'affichage sur la page du membre!)
Et je ne vois vraiment pas ou se situe le lézard.
Le pb doit venir au niveau d ela maj de session, les 3 possibilités en fin de script sont annulées volontairement car elles ne fonctionnent pas .

<?php
  session_start();
$id = $_SESSION['id'];
include 'connexion.php';
//on va chercher la position du joueur
$requete = mysql_query("SELECT posx, posy FROM membres WHERE id = ". $id .";") or die(mysql_error());
$rsa= mysql_fetch_assoc($requete);
$posx = $rsa['posx'];
$posy = $rsa['posy'];
//Là, on va chercher la ressource de la case sur la map qui correspond au X/Y de ton perso
$rsb = mysql_query("SELECT ressource FROM map WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']) or die(mysql_error());
$sql = mysql_fetch_assoc($rsb);
$ressource= $sql['ressource'];
//Là, on va chercher l'objet vide qui peut accueillir ladite ressource
$sql= "SELECT ob1 FROM membres WHERE id = ". $id .";"; 
        $res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
        $data = mysql_result($res,0,'ob1');
       if ($data== './objet/rien.gif') {
$sql ="UPDATE membres SET ob1= '$ressource', qob1=qob1+1 WHERE id = ". $id .";";
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
//    $_SESSION['ob1']= $_SESSION['ob1']='$ressource'; presque bon !
//    $_SESSION['ob1']= $_SESSION['ob1']+'$ressource'; presque bon !
//    $_SESSION['ob1']= '$ressource';  presque bon !

    $_SESSION['qob1']=$_SESSION['qob1']+1;
}
header("Location: page_membre.php");
}
mysql_close();
?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 févr. 2007, 00:21

Et euh... pourquoi des apostrophes autour de ta variable ? c'est une chaine que tu veux ajouter dans ta session ou un calcul ? :)
$_SESSION['ob1'] += $ressource; // si tu additionnes
$_SESSION['ob1'] .= $ressource; // si tu concatènes
$_SESSION['ob1'] = $ressource; // si tu remplaces


Par ailleurs, ne met pas de ";" à la fin de tes requêtes SQL quand tu les exécute via mysql_query() ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 177 Messages

21 févr. 2007, 00:29

On dirait bien que ta variable est un tableau, jette un oeil a print_r qui devrait te permettre d'identifier les clés qui peuvent t'intéresser.

Eléphant du PHP | 250 Messages

21 févr. 2007, 22:45

Voici donc la bonne soluce pour la maj de la session:

    $_SESSION['ob1']= $ressource;