8791 sujets

Développement web côté serveur, CMS

Bonne année a tout le monde Smiley biggrin
Je voulais savoir si celà est possible car ce bout de code ne marche pas (aucune mise à jour en table ne s'effectue.....)

$maj = mysql_query ("UPDATE table SET abandon= ".$_SESSION['stock']." WHERE bla bla bla "); 
etc

Modifié par Rouge (13 Jan 2008 - 21:20)
Eh bien oui.

Pourquoi en irait-il autrement?
Une variable c'est une variable. session ou pas.

d'ailleurs code sql et code php sont 2 choses totallement séparées.

cherche dans ton code verifies que tu utilises les bons champs.
le format de ta requete semble bon.

as tu mis session_start(); au debut de ta page? car c'est nécessaire pour que les variables sessions soient initialisées.
Modifié par CPascal (03 Jan 2008 - 23:39)
Salut,

Il y a certainement une erreur dans la requête SQL, tu devrais essayer de la récupérer en utilisant mysql_error() ... Il est aussi utile de visualiser la requête complète avant de l'exécuter, simplement en faisant un echo :
$query = 'UPDATE table SET abandon = '.$_SESSION['stock'].' WHERE ...' ;
[b]echo $query ;[/b]
mysql_query($query) [b]or die(mysql_error())[/b] ;
Smiley decu

voici le code (épuré)

<?php
session_start();
$id = $_SESSION['id'];
include 'connexion.php';
$maj = mysql_query ("UPDATE map SET abandon=".$_SESSION['stock']." WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']." "); 
echo $maj ;
mysql_query($maj) or die(mysql_error()) ;
include("page_membre.php");


cela affiche Query was empty
Salut Rouge,

il faut remplacer :
$maj = mysql_query ("UPDATE map SET abandon=".$_SESSION['stock']." WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']." ");
par
$maj = "UPDATE map SET abandon=".$_SESSION['stock']." WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy'];

A+ Smiley cligne
non, désolé Heyoan, avec ta méthode j'ai une erreur sql qui s'affiche:
UPDATE map SET abandon=./objet/fer.gif WHERE posx=0 AND posy=0 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 '/objet/fer.gif WHERE posx=0 AND posy=0' at line 1

sinon, j'ai toujours le query was empty, pourtant la variable de session existe bien, elle s'affiche sur la page qui précéde ce script.
Ben c'est qu'il manque des quotes Smiley murf ...
$maj = "UPDATE map SET abandon='".$_SESSION['stock']."' WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy'];

A+
Je suis navré mais ca fonctionne toujours pas Smiley bawling
voici le script en entier (des fois qu'une erreur coince ailleurs?)


<?php
session_start();
$id = $_SESSION['id'];
$quantité=$_POST['quantité'];
include 'connexion.php';
$sql = "SELECT gestion ".
       "FROM membres  ".
       "WHERE id = ". $id ." "; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,0,'gestion'));
if ($data== './image/jetonrouge.gif')
       {
    echo '<center><font color="red">Désolé, mais VOTRE JETON EST ROUGE !</font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
	}
	else
	{
	$verif = "SELECT qstock FROM membres WHERE id = ". $id ." ";
$res=mysql_query($verif) or die('Erreur SQL '.$verif.'<br>'.mysql_error());
($data = mysql_result($res,0,'qstock'));
if ($data <= '$quantité')
       {
    echo '<center><font color="red">Désolé, mais vous ne pouvez pas ABANDONNER autant, réduisez la quantité.</font></center>
<center><font color="black"><a href="page_membre.php">retour page membre</a></font></center>';
	}
else
{
$requete = mysql_query("SELECT map FROM membres WHERE id = ". $id ." ") or die(mysql_error());
$data= mysql_fetch_assoc($requete);
$situation= $data['map'];
switch ($situation){
   case "map":
$req = mysql_query("SELECT posx, posy FROM membres WHERE id = ". $id ." ") or die(mysql_error());
$rsa= mysql_fetch_assoc($req);
$posx = $rsa['posx'];
$posy = $rsa['posy'];
$maj = "UPDATE map SET abandon='".$_SESSION['stock']."', qabandon='$quantité' WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']." "; 
$maj2 = mysql_query ("UPDATE membres SET qstock=qstock-$quantité, exp=exp+0.1,
mp='Vous avez abandonné tout ou partie de votre stock ici.' WHERE id = ". $id ." ");
if($maj2){
                    
					$_SESSION['qstock']= $_SESSION['qstock']-$quantité;
                    $_SESSION['exp']= $_SESSION['exp']+0.1;
			        $_SESSION['mp']= 'Vous avez abandonné tout ou partie de votre stock ici.';
}
include("page_membre.php");
break;
exit;
}
}
}
mysql_close();
?>
Salut,

déjà il faudrait éviter les accents dans le nom des variables Smiley cligne !

ensuite remplacer :
if ($data <= '$quantité')

[b]par[/b]

if ($data <= $quantite)

Et puis croiser les doigts et réessayer Smiley lol !

A+
C'est à n'y RIEN comprendre, ca marche à présent !
J'ai eu un soucis de session? chez mon hébergeur, le problème devait etre lié!


$maj = mysql_query ("UPDATE map SET abandon='".$_SESSION['stock']."', qabandon='$quantité' WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']." ") or die (mysql_error());