Rechercher : dans
Par :

PhP/MySQL: Parse error: syntax error, unexpec

Dernière réponse le 10 jun 2008 à 14:01:40 zebi331, le 9 jun 2008 à 15:52:39 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « PhP/MySQL: Parse error: syntax error, unexpec » dans :
Parse error: syntax error, unexpected $end Voir Lorsque l'on programme en Php, on se retrouve inévitablement un jour devant ce genre d'erreur: Parse error: syntax error, unexpected $end in Command line code on line 1 En français, ça signifie grossièrement: "Erreur d'analyse du code: il y a une...
PHP Parse error: unexpected '<' in ... eval()'d code on line VoirSymptômes Lors de l'utilisation de la fonction eval() en PHP, ce dernier se plaint et vous affiche un message de la forme suivante : PHP Parse error: syntax error, unexpected '
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...

1

absurdsystem, le 9 jun 2008 à 16:24:56

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

Répondre à absurdsystem

2

zebi331, le 9 jun 2008 à 16:28:36

Est-ce que c'est possible que le problème vienne d'une erreur de saisie dans la base de données?

Répondre à zebi331

3

Alain_42, le 9 jun 2008 à 16:45:56

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

Répondre à Alain_42

4

zebi331, le 9 jun 2008 à 16:49:28

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

Répondre à zebi331

5

zebi331, le 9 jun 2008 à 16:54:41

Ah 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

Répondre à zebi331

6

Alain_42, le 9 jun 2008 à 16:58:23

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

Répondre à Alain_42

7

zebi331, le 9 jun 2008 à 17:02:35

Oula gros problème. Il y a un truc que j'ai du mal comprendre.
Voici l'erreur retournée: Pb requette Table 'ma_base.produit' doesn't exist

Répondre à zebi331

8

Alain_42, le 9 jun 2008 à 17:13:29

Tu vois l'erreur n'est pas toujours à la ligne indiquée, elle te disait:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource

ce qui signifie que $cportable n'a rie renvoyé donc il faut chercher pourquoi d'ou l'interêt des traces d'erreur

tu dois avoir un pb de nom de base es tu certain qu'elle s'appelle bien ma_base ?

majuscules minuscules ? un espace qui traine ?

Répondre à Alain_42

9

PhP, le 9 jun 2008 à 17:57:17

Bsr

Heu ce serait pas plutôt la table produit qui serait introuvable dans la base ma_base ?
PhP  
Il y a 10 types de personnes dans le monde : ceux qui compre­nnent le binaire et les autres ...

Répondre à PhP

10

zebi331, le 9 jun 2008 à 20:16:16

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

Répondre à zebi331

11

zebi331, le 9 jun 2008 à 21:38:53

Personne ne trouve d'erreur dans le code de ma base de données?

Répondre à zebi331

12

zebi331, le 10 jun 2008 à 08:59:38

Il n'y a personne pour m'aider? :(

Répondre à zebi331

13

Alain_42, le 10 jun 2008 à 09:31:43

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'";

Répondre à Alain_42

14

 PhP, le 10 jun 2008 à 14:01:40

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 ...
PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...

Répondre à PhP