PhP/MySQL: Parse error: syntax error, unexpec

Résolu
Bonjour,
J'ai créé une base de données de type MySQL avec une table PRODUIT.
Lorsque je souhaite récupérer des informations sur la base de données à l'aide de mysql_fetch_array, il y a une erreur:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\New\pcbureau\pcbureau.php on line 56

Voici une partie de mon code:
<?php
$connexion = mysql_connect("localhost","root","");
if (!$connexion)
{
die('Impossible de se connecter: ' . mysql_error());
}
$base="ma_base";
mysql_select_db($base, $connexion);
$portable = "SELECT * FROM PRODUIT WHERE ID_THEME = 'portable';";
$cportable = mysql_query($portable,$connexion);
while ($cportable=mysql_fetch_array($portable))
{
echo"<tr>\n";
echo"<td>$cportable['PHOTO']</td>\n"; // !!! LIGNE 56 D'OU VIENT LE PROBLÈME !!!
echo"<td>$cportable['NOM']</td>\n";
echo"<td>$cportable['PRIX']</td>\n";
echo"</tr>\n";
}
mysql_close($connexion);
?>
Est-ce quelqu'un veut bien m'aider? Je vous en prie, c'est très important. Merci d'avance.
Configuration: Windows Vista
Firefox 2.0.0.14

5 réponses

  1. Bjr

    C'est quoi ce script de création à la noix ! lol

    J'ai dû changer pas mal de trucs pour qu'il daigne fonctionner !!

    Page ma_base.php :

    <?php
    	$connexion = mysql_connect("localhost","root","");
    	$base="ma_base";
    	if (mysql_query("CREATE DATABASE $base",$connexion))
    	{
    		echo "Base de données créée<br />";
    	}
    	else
    	{
    		echo "Erreur lors de la création de la base de données: " . mysql_error();
    	}
    
    	mysql_select_db($base, $connexion);
        $sql = "CREATE TABLE produit
    		(
    		ID_PRODUIT CHAR (32) ,
    		ID_THEME CHAR (32) ,
    		NOM CHAR (32) ,
    		PHOTO CHAR (50) ,
    		PRIX DECIMAL (5,2) ,   
    		 PRIMARY KEY (ID_PRODUIT)
    		)";
    	if (mysql_query($sql,$connexion))
    	{
    		echo "Table produit créée<br />";
    	}
        $sql = array();
    	$sql[]="INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer1','portable', 'Acer Aspire 7720Z', 'img/poacer1.jpg', 611.04);";
    	$sql[]="INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer2','portable', 'Acer Aspire 5920G',  'img/poacer2.jpg', 581.91);";						
    	$sql[]="INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer3', 'portable', 'Acer Aspire 7720G',  'img/poacer3.jpg',596.45 );";
    	$sql[]="INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer4', 'portable', 'Acer Aspire 8920G',  'img/poacer4.jpg',1872.00 );";
        	
    	for ($i=0; $i < count($sql); $i++)
    	{	
    		if (mysql_query($sql[$i],$connexion))
    		{
    			echo "Requête ".$i." correctement exectutée : 1 enregistrement ajouté<br />";
    		}		
    	}	
        mysql_close($connexion);
    ?>


    Page mes_produits.php :

    <?php
    $connexion = mysql_connect("localhost","root","");
    if (!$connexion)
    {
    	die('Impossible de se connecter: ' . mysql_error());
    }
    $base="ma_base";
    mysql_select_db($base, $connexion);
    $sql = "SELECT * FROM PRODUIT WHERE ID_THEME = 'portable'";
    $result = mysql_query($sql,$connexion);
    echo "<table>\n";
    while ($ligne=mysql_fetch_array($result))
    {
    	echo "<tr>\n";
    	echo "<td>".$ligne['PHOTO']."</td>\n"; 
    	echo "<td>".$ligne['NOM']."</td>\n";
    	echo "<td>".$ligne['PRIX']."</td>\n";
    	echo "</tr>\n";
    }
    echo "</table>\n";
    mysql_close($connexion);
    ?> 


    Bon dev ...
    1. Il n'y a personne pour m'aider? :(
      1. Tu a cree la table "produit" et tu fais ta requette sur PRODUIT

        $portable = "SELECT * FROM PRODUIT WHERE ID_THEME = 'portable'";

        essayes:
        $portable = "SELECT * FROM produit WHERE ID_THEME = 'portable'";
    2. Personne ne trouve d'erreur dans le code de ma base de données?
      1. Bsr

        Heu ce serait pas plutôt la table produit qui serait introuvable dans la base ma_base ?
        1. Désolé je suis allé voir le match (nul 0-0).
          Je vous propose de contrôler le code de création de la base de donnée:

          <?php
          			$connexion = mysql_connect("localhost","root","");
          			$base="ma_base";
          			if (!$connexion)
          			{
          				die('Impossible de se connecter: ' . mysql_error());
          			}
          			if (mysql_query("CREATE DATABASE $base",$connexion))
          			{
          				echo "Base de données créée";
          			}
          			else
          			{
          				echo "Erreur lors de la création de la base de données: " . mysql_error();
          			}
          			mysql_select_db($base, $connexion);
                                                         $produit = "CREATE TABLE produit
          			(
          				ID_PRODUIT CHAR (32) ,
          				ID_THEME CHAR (32) ,
          				NOM CHAR (32) ,
          				PHOTO CHAR (50) ,
          				PRIX DECIMAL (5,2) ,   
          				, PRIMARY KEY (ID_PRODUIT)
          			)";
          			mysql_query($produit,$connexion);
                                                          $rproduit = "
          						INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer1','portable', 'Acer Aspire 7720Z', 'img/poacer1.jpg', 611.04);
          						INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer2','portable', 'Acer Aspire 5920G',  'img/poacer2.jpg', 581.91);						
          						INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer3', 'portable', 'Acer Aspire 7720G',  'img/poacer3.jpg',596.45 );
          						INSERT INTO produit (ID_PRODUIT, ID_THEME, NOM, PHOTO, PRIX) VALUES('poacer4', 'portable', 'Acer Aspire 8920G',  'img/poacer4.jpg',1872.00 );";
                                                          mysql_close($connexion);
          		?>

          N'hésitez pas à m'indiquer si vous voyez des erreurs!!! Je ne suis qu'un simple débutant!!
      2. Slt

        L'erreur doit etre au niveau de ta requete meme si l'on t'indique une autre ligne .

        J'ai deja eu le cas plusieur fois et le probleme etait a chaque fois dans la requete
        1. est-ce que c'est possible que le problème vienne d'une erreur de saisie dans la base de données?
        2. @zebi331Tu avais une petite erreur de ; en trop mais selon certains il le faut
          et des erreurs de principe

          essayes comme ça:

          
          $connexion = mysql_connect("localhost","root","");
          if (!$connexion)
          {
          die('Impossible de se connecter: ' . mysql_error());
          }
          $base="ma_base";
          mysql_select_db($base, $connexion);
          $portable = "SELECT * FROM PRODUIT WHERE ID_THEME = 'portable'";//erreur la un ; en trop
          $cportable = mysql_query($portable,$connexion);
          while ($ligne=mysql_fetch_array($cportable))//erreur la on fait la boucle ligne par ligne sur l'extraction donc $cportable 
          {
          echo "<tr>\n";
          echo "<td>".$ligne['PHOTO']."</td>\n"; // !!! LIGNE 56 D'OU VIENT LE PROBLÈME !!!
          echo "<td>".$ligne['NOM']."</td>\n";
          echo "<td>".$ligne['PRIX']."</td>\n";
          echo "</tr>\n";
          }
          mysql_close($connexion);
          ?> 
          
        3. @Alain_42Je ne penses pas que le problème vienne de là. J'ai essayé mais il y a toujours la même erreur!! Merci quand même.
        4. @Alain_42Ah non excuse-moi je n'avais pas tout corriger. Cette fois-ci, j'ai une nouvelle erreur:

          Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\New\portables\portable.php on line 53
        5. @zebi331Donc il y a un pb au dessus, essayes en rajoutant les traces d'erreur ainsi:

          $base="ma_base";
          mysql_select_db($base, $connexion) or die ("Pb selection base ".mysql_error());
          $portable = "SELECT * FROM PRODUIT WHERE ID_THEME = 'portable'";
          $cportable = mysql_query($portable,$connexion) or die ("Pb requette ".mysql_error());