Parse error

SmoKeyz Messages postés 3 Statut Membre -  
ReDLoG Messages postés 393 Statut Membre -
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

  1. arthezius Messages postés 3756 Statut Membre 475
     
    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
  2. ReDLoG Messages postés 393 Statut Membre 57
     
    Bonsoir,
    Pour afficher les données, utiliser une instruction echo dans la boucle while
    Cordialement.
    0
  3. SmoKeyz Messages postés 3 Statut Membre
     
    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
    1. ReDLoG Messages postés 393 Statut Membre 57
       
      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