Parse error

Fermé
SmoKeyz Messages postés 3 Date d'inscription lundi 14 avril 2014 Statut Membre Dernière intervention 23 décembre 2014 - 14 avril 2014 à 19:45
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 - 15 avril 2014 à 21:39
Bonjour,

Je suis entrain de créer une petit appli web pour gérer les stock du magsin de ma boite, et je bute sur une erreur, je ne suis pas un super programmeur juste, je le fait par plaisire, donc voici l'erreur : Parse error: syntax error, unexpected T_STRING in C:\wamp\www\GSmag\index.php on line 22

et voici la partie de mon code vers la ligne 22 :

<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=bdd_stock', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$sortieDR = $bdd->query('SELECT * FROM aechys WHERE magasin='DR' ORDER BY date DESC LIMIT 0,9');

while($sortieDR = $asdr->fetch())
{
<table>
<tr>
<th>Date</th>
<th>Ref</th>
<th>Désignation</th>
<th>Qte</th>
</tr>

<tr>
<th>$asdr['date']</th>
<th>$asdr['ref']</th>
<th>$asdr['designation']</th>
<th>$asdr['qte']</th>
</tr>
</table>

}
$reponse->closeCursor();

Merci d'avance,
Cordialement.


3 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
14 avril 2014 à 23:25
Tu ne peux pas mettre directement du code HTML comme ça au milieu du PHP.
Le PHP pas traiter sont code et gérer une page HTML.

Tu peux le mettre comme ça:

<?php
echo'<p>Code HTML</p>';
?>

echo permet d'afficher du code HTML.
http://www.php.net/manual/fr/function.echo.php
1
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
14 avril 2014 à 20:47
Bonsoir,
Pour afficher les données, utiliser une instruction echo dans la boucle while
Cordialement.
0
SmoKeyz Messages postés 3 Date d'inscription lundi 14 avril 2014 Statut Membre Dernière intervention 23 décembre 2014
15 avril 2014 à 19:08
Ok merci, je n'ai plus d'erreurs, mais maintenant j'ai juste une page blanche, pourquoi le code n'affiche t'il rien, pas même le menu ? :/

Le voici après modifications :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Géstionnaire de Stock BETA v0.1</title>
<style href="style.css"/>
</head>
<body>
<?php
$r_page = index;
?>
<?php include ("inc/menu.php");?>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=bdd_stock', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$sortieDR = $bdd->query('SELECT * FROM aechys WHERE magasin=\'DR\' ORDER BY date DESC LIMIT 0,9');

while($sortieDR = $asdr->fetch())
{
echo
'<p>
<table>
<tr>
<th>Date</th>
<th>Ref</th>
<th>Désignation</th>
<th>Qte</th>
</tr>

<tr>
<th>$asdr[\'date\'];</th>
<th>$asdr[\'ref\'];</th>
<th>$asdr[\'designation\'];</th>
<th>$asdr[\'qte\'];</th>
</tr>
</table>
</p>';
}
$reponse->closeCursor();
?>
...
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
15 avril 2014 à 21:39
Bonsoir,

Tu as plusieurs erreurs dans ton script.
1ère erreur de syntaxe :
<?php
$r_page = index; // manque les quotes pour indiquer une chaîne
$r_page = "index";
?>

2ème erreur d'inversion :
while($sortieDR = $asdr->fetch())
/* Inversion de variable, la requête est $sortieDR ce qui doit s'énoncer ainsi */
while($asdr = $sortieDR->fetch())

3ème erreur de syntaxe dans l'instruction echo :
/* Code corrigé */
echo "<p>
		<table>
			<tr>
				<th>Date</th>
				<th>Ref</th>
				<th>Désignation</th>
				<th>Qte</th>
			</tr>
                        <tr>
		<th>".$asdr['date']."</th>
		<th>".$asdr['ref']."</th>
		<th>".$asdr['designation']."</th>
		<th>".$asdr['qte']."</th>
	</tr>
</table>
</p>";

4ème erreur (minime mais quand même) :
/*
Sortir l'entête du tableau HTML de la boucle while sinon ça va 
se répéter autant de fois qu'il y a d'enregistrements à afficher
*/
echo "<p>
     <table>
	<tr>
		<th>Date</th>
		<th>Ref</th>
		<th>Désignation</th>
		<th>Qte</th>
	</tr>";
while($asdr = $sortieDR->fetch()) {
echo "<tr>
		<td>".$asdr['date']."</td>
		<td>".$asdr['ref']."</td>
		<td>".$asdr['designation']."</td>
		<td>".$asdr['qte']."</td>
	</tr>";
}
echo "</table>
     </p>";

Dernier conseil du point de vue syntaxique HTML, il n'est pas nécessaire d'englober ton tableau dans un paragraphe :-)
Cordialement.
0