IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur de syntaxe sur une requête


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut Erreur de syntaxe sur une requête
    Bonjour a tous,
    J'ai comme stipulé dans le titre une erreur de syntaxe sur une requête.

    message d'erreur:

    Erreur 1 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

    ligne concernée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	if ($envoi_news=mysql_query($requete_news) or die ('Erreur 1 <font color="#C00000">'.mysql_error().'</font>'))
    Code complet sans le HTML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php session_start(); 
     
    if (!isset($_SESSION['login'])) { 
       echo "<center>Bienvenue dans l'espace d administration</center></br>";   
    }  
    ?>
     
    <?php include('includes/sql_connect.php');
     
    $requete_news="SELECT * FROM news WHERE news_id=$_POST[news_id]";
    	if ($envoi_news=mysql_query($requete_news) or die ('Erreur 1 <font color="#C00000">'.mysql_error().'</font>'))
    		{
    		if ($data_news=mysql_fetch_array($envoi_news) or die ('Erreur 2 <font color="#C00000">'.mysql_error().'</font>'))
    			{
    				$news_modification=str_replace("[MSG_ID]",$data_news["news_id"],$news_modification);
    				$news_modification=str_replace("[MSG_TITRE]",$data_news["titre"],$news_modification);
    				$news_modification=str_replace("[MSG_CONTENU]",$data_news["texte"],$news_modification);
    			}
    		        mysql_free_result($envoi_news) or die ('Erreur 3 <font color="#C00000">'.mysql_error().'</font>');
    		}				
    					?>

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Bonsoir ! Normal je pense que comme ca, ca marchera mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete_news="SELECT * FROM news WHERE news_id=".$_POST['news_id']."";

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    D'accord je pensais que la concaténation n'était pas obligatoire j'essaye et vous tien au courant.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Donc sa ne viens pas de la car j'ai toujours la même erreur
    Je continue mes recherches je vous prévient si je trouve.

  5. #5
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Ok ^^ Tu es bien sur que $_POST['news_id'] n'est pas vide ou existe? Je veux dire tu as fait des test dessus?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    Bonjour,

    Je préfère aussi la solution de la concaténation afin de mieux voir le code et profiter de la colorisation ;-).

    Donc, Malgré que ce soit un int ta variable $_POST['new_id'], je la mettrai entre quote:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete_news="SELECT * FROM news WHERE news_id='" . $_POST['news_id'] . "'";
    De plus dans ton exemple, il était écris $_POST[new_id] sans les quotes... Alors soit il manquait le $ pour faire une variable ou entre quote pour le nom de la référence... Mais j'ai peut-être tord.. Je n'utilise plus les chaines avec le double quote et les variables à l'intérieur des chaines...

    Bon courage.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Donc voila ce qu'il en est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php include('includes/sql_connect.php');
     
    $requete_news="SELECT * FROM news WHERE news_id='.$_POST[news_id].'";
    	if ($envoi_news=mysql_query($requete_news) or die ('Erreur 1 <font color="#C00000">'.mysql_error().'</font>'))
    		{
    		if ($data_news=mysql_fetch_array($envoi_news) or die ('Erreur 2 <font color="#C00000">'.mysql_error().'</font>'))
    			{
    				$news_modification=str_replace("[MSG_ID]",$data_news["news_id"],$news_modification);
    				$news_modification=str_replace("[MSG_TITRE]",$data_news["titre"],$news_modification);
    				$news_modification=str_replace("[MSG_CONTENU]",$data_news["texte"],$news_modification);
    			}
    		        mysql_free_result($envoi_news) or die ('Erreur 3 <font color="#C00000">'.mysql_error().'</font>');
    		}				
    					?>
    Maintenant j'ais une erreur qui est :

    Erreur 2 mais sans message d'erreur.

  8. #8
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Je te propose ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $requete_news="SELECT * FROM news WHERE news_id=".$_POST['news_id']."";
    	$envoi_news=mysql_query($requete_news) or die ('Erreur 1 <font color="#C00000">'.mysql_error().'</font>');
     
    		$data_news=mysql_fetch_array($envoi_news);
     
    				$news_modification=str_replace("[MSG_ID]",$data_news["news_id"],$news_modification);
    				$news_modification=str_replace("[MSG_TITRE]",$data_news["titre"],$news_modification);
    				$news_modification=str_replace("[MSG_CONTENU]",$data_news["texte"],$news_modification);
     
    		        mysql_free_result($envoi_news) or die ('Erreur 3 <font color="#C00000">'.mysql_error().'</font>');
     
    					?>
    Tu n'a pas besoin de faire des if puisque les or die stoppe le traitement

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Voila je n'est plus de message d'erreur.
    Par contre les str_replace ne ce fond pas vu que dans le formulaire il s'affiche

    Titre * [MSG_TITRE]
    Contenu * [MSG_CONTENU]

    et non le titre et le texte.

    C'est ma première fois avec str_replace

    Code complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?php session_start(); 
     
    if (!isset($_SESSION['login'])) { 
       echo "<center>Bienvenue dans l'espace d administration</center></br>";   
    }  
    ?>
     
    <?php include('includes/sql_connect.php');
     
    $requete_news="SELECT * FROM news WHERE news_id='.$_POST[news_id].'";
    	if ($envoi_news=mysql_query($requete_news) or die ('Erreur 1 <font color="#C00000">'.mysql_error().'</font>'))
    		{
    		if ($data_news=mysql_fetch_array($envoi_news))
    			{
    				$news_modification=str_replace("[MSG_ID]",$data_news["news_id"],$news_modification);
    				$news_modification=str_replace("[MSG_TITRE]",$data_news["titre"],$news_modification);
    				$news_modification=str_replace("[MSG_CONTENU]",$data_news["texte"],$news_modification);
    			}
    		        mysql_free_result($envoi_news) or die ('Erreur 3 <font color="#C00000">'.mysql_error().'</font>');
    		}				
    					?>
     
    	 <body>
     <div align="center">
     
    	<script type="text/javascript">
    function Valider()
    {
    	result=true;
    	if (document.saisie.titre.value=="") result=false;
    	if (document.saisie.contenu.value=="") result=false;
    	if (result==false)
    	{
    		alert("Vous n'avez saisi la totalité des informations requises.");
    	}
    	return result;
    }
    </script>
     
    	<p>
     
    <form name="saisie" action="news.php" method="post" OnSubmit="return Valider()">
     
    <input type="hidden" name="action" value="Modifier">
    <input type="hidden" name="news_id" value="[MSG_ID]">
     
    <table>
     
    <tr>
    <td align="right"></td>
    <td align="left"><b>Descriptif</b></td>
    </tr>
     
    <tr>
    <td align="right">Titre <small><font color="#C00000">*</font></small></td>
    <td align="left"><input type="text" name="titre" size="47" value="[MSG_TITRE]"></td>
    </tr>
     
    <tr>
    <td align="right" valign="top">Contenu <small><font color="#C00000">*</font></small></td>
    <td align="left"><textarea name="contenu" rows="10" wrap="virtual" cols="36">[MSG_CONTENU]</textarea></td>
    </tr>
     
    <tr>
    <td></td>
    <td align="left"><input type="submit" value="Modifier"></td>
    </tr>
     
    </table>
     
    </form>
     
    </p>
     
    </div>
    	</body>

Discussions similaires

  1. [MySQL] erreur de syntaxe sur une requête très simple
    Par Anandamine dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/06/2012, 09h45
  2. Erreur de syntaxe sur une requête d'insertion
    Par Moustic74 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/12/2008, 17h34
  3. Erreur de syntaxe dans une requête SQL
    Par amnesias dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/01/2007, 12h50
  4. Erreur de syntaxe sur une requête paramétrée
    Par deglingo37 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2006, 22h21
  5. [MySQL] Erreur de syntaxe sur ma requête SELECT
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 08/03/2006, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo