pb requete sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb requete sql

par YVES » 30 sept. 2007, 20:43

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

par d0m » 28 sept. 2007, 09:10

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

par Cyrano » 28 sept. 2007, 06:43

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.

pb requete sql

par YVES » 27 sept. 2007, 22:00

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...