Probleme de syntax a l'affichage

Résolu
Bonjour,

je souhaite afficher le contenu dans ma base de donnée et ...
<?php
					mysql_connect("localhost", "root", "");
					mysql_select_db('index');
					
					$retour = mysql_query("SELECT * FROM index");
					if($retour === false) {
					die(mysql_error());
						}
					while ($donnees = mysql_fetch_array($retour))
					{
						$contenu = nl2br(stripslashes($donnees['texteindex']));
						echo $contenu; }
						?>


voici mon erreur 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 'index' at line 1

6 réponses

  1. Salut,

    INDEX est un mot réservé en MySQL, tu ne peux pas nommer de table ou de champ avec ce mot.

    Bonne journée
    1. ah oui mais non ^^ j'ai remplacé mes index par des news et refait ma table dans la bdd et il ne m'affiche plus rien
    2. Si t'as plus d'erreur le problème vient d'ailleurs !
  2. Retente avec PDO, c'est mon dernier conseil !
    1. $db = new PDO("mysql:host=localhost;dbname=administration", 'root', '');
      					$req = $db->prepare('SELECT * FROM index'); 
      					$req->execute(); 
      					$res = $req->fetch(); 
      						$contenu = nl2br(stripslashes($res['texteindex']));
      						echo $contenu;
      						$db->exec($sql);
      						$db=null;


      Pas d'erreur mais rien par contre
    2. $req->execute() or die(print_r($req->errorInfo()));

      while($res = $req->fetch())
      {
      $contenu = nl2br(stripslashes($res['texteindex']));
      echo $contenu;
      }
    3. ah le while ... evidemment

      Array ( [0] => 42000 [1] => 1064 [2] => 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 'index' at line 1 ) 1
    4. Bon bon bon ... ta table index existe bien ?
    5. Oui, oui ^^, elle est bien dans base de donnée administration ...
  3. Pourquoi avoir mis === ? == suffit je pense

    Mmh sinon je sèche, je vois pas trop ...
    T'as fais gaffe aux majuscules/minuscules ?
    1. http://www.php.net/manual/fr/language.operators.comparison.php

      Permet de comparer le type en plus de comparer la valeur. Le triple égal est donc mieux adapté pour cette comparaison afin d'éviter d'éventuels problèmes de transtypage
  4. Je me suis trompé ! ma base de donnée n'etait pas la bonne mais l'erreur est encore là
    1. Erreur de syntaxe dans ta requete, mais alors je vois pas trop où elle est ... !
      SELECT * FROM index ... Ta table index existe bien ? Et ta base de données 'index' existe bien aussi ?