Page 1 sur 1

pb requete sql

Posté : 27 sept. 2007, 22:00
par YVES
Bonjour,

ce petit script fonctionne dans le sens ou il met bien à jour la base de données mais affiche un message erreur sql que je voudrais voir disparaitre:
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

<?php
session_start();
$id = $_SESSION['id'];
include 'connexion.php';
$requete = mysql_query("SELECT pause FROM membres WHERE id = ". $id .";") or die(mysql_error());
$data= mysql_fetch_assoc($requete);
$pause= $data['pause'];
switch ($pause){
case "NON":
$maj = mysql_query ("UPDATE membres SET pause= 'OUI', gestion= './images/jetonrouge.gif', deplacement='./images/jetonrouge.gif',
action='./images/jetonrouge.gif' WHERE id = " . $id ."  "); 
mysql_query($maj) or die('Erreur SQL '.$maj.'<br>'.mysql_error());
break;
echo '<script language="Javascript">
<!--
document.location.replace("son_boire.htm");
// -->
</script>';
case "OUI":
echo'<center><strong><font size="3" face="Calligraph421 BT">Votre perso est déjà en pause !</font></strong></center>';
break;
}		
mysql_close();
?>
je ne peux plus passer par un header, apparemment, le nouvel hebergeur ne les accepte pas :roll:
j'ai aussi décalé le javascript en l'intégrant avant le break, mais ce n'est pas mieux...

Posté : 28 sept. 2007, 06:43
par Cyrano
Fais voir la requête SQL générée, on ne pourra pas forcément détecter d'erreur sans ça. Si la suite du programme passe par un header, il est normal que ça plante si tu as un message d'erreur.

Posté : 28 sept. 2007, 09:10
par d0m
Tu fais simplement un double mysql_query dans cette partie :
$maj = mysql_query ("UPDATE membres SET pause= 'OUI', gestion= './images/jetonrouge.gif', deplacement='./images/jetonrouge.gif',
action='./images/jetonrouge.gif' WHERE id = " . $id ."  "); 
mysql_query($maj) or die('Erreur SQL '.$maj.'<br>'.mysql_error()); 
en gros tu fais l'équivalent de :
mysql_query(mysql_query($requete_sql));
ta première requete est donc bien executée, mais ensuite tu essaies d'executer le résultat de la requete, et ça ça ne marche pas ;)

Posté : 30 sept. 2007, 20:43
par YVES
J'ai simplifié le code (redondant?) et ai mis un include.
Ca marche et plus de message d'erreur. :)
<?php
session_start();
$id = $_SESSION['id'];
include 'connexion.php';
$requete = mysql_query("SELECT pause FROM membres WHERE id = ". $id .";") or die(mysql_error());
$data= mysql_fetch_assoc($requete);
$pause= $data['pause'];
switch ($pause){
case "NON":
$maj = mysql_query ("UPDATE membres SET pause= 'OUI', gestion= './images/jetonrouge.gif', deplacement='./images/jetonrouge.gif',
action='./images/jetonrouge.gif' WHERE id = " . $id .";")or die (mysql_error());  
include('pauseOK.htm');
break;
case "OUI":
echo'<center><strong><font size="3" face="Calligraph421 BT">Votre perso est déjà en pause !</font></strong></center>';
break;
}		
mysql_close();
?>