[PHP] Tableau a partir d'une table : erreur !

Résolu
Onizuguts Messages postés 2 Statut Membre -  
Ssylvainsab Messages postés 2892 Statut Modérateur -
Bonjour !
Je souhaite créer un tableau dynamique à partir d'une table de la base avec ce code :

<?php do { ?>
    <tr>
      <td><?php echo $row_Recordset1[''nom'']; ?></td>
      <td><?php echo $row_Recordset1[''prenom'']; ?></td>
      <td><?php echo $row_Recordset1[''telephone'']; ?></td>
      <td><?php echo $row_Recordset1[''email'']; ?></td>
      <td><?php echo $row_Recordset1[''commentaires'']; ?></td>
    </tr>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>


Le problème c'est que cette erreur s'affiche lors de l'execution : "Parse error: syntax error, unexpected T_STRING, expecting ']' in /home/m/a/i/maisonlhome/www/admin.php on line 58".
La ligne 58 est la ligne de la première balise <td>.
Auriez-vous une idée ?
Merci.

3 réponses

  1. ceddec Messages postés 149 Statut Membre 82
     
    Bonjour,

    Pour moi c'est à cause de ' ' (si c'est bien ça que tu as mis?). Il ne faut pas mettre 2 quotes mais 1 seule (ou des guillemets) le code deviendrait :

    <?php do { ?>
        <tr>
          <td><?php echo $row_Recordset1['nom']; ?></td>
          <td><?php echo $row_Recordset1['prenom']; ?></td>
          <td><?php echo $row_Recordset1['telephone']; ?></td>
          <td><?php echo $row_Recordset1['email']; ?></td>
          <td><?php echo $row_Recordset1['commentaires']; ?></td>
        </tr>
        <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
    


    Autre Remarque :
    La boucle me parait incorrecte :
    si tu fais un do {.A.} while(..) cela signifie que tu fais d'abord les instructions A avant de faire le test. Or tu utilises $row_Recordset1['nom']; qui n'est définit que si tu fais le mysql_fetch_array (qui fait parti du test). Tout ca pour dire que si tu ne fais pas de mysql_fetch_array avant ta boucle, je crois que celle ci ne fonctionnera pas. La solution serait de faire un while classique:
    while($row...=mysql_fetch_array($Recordset)) 
    {
      ?>
        <tr>
          <td><?php echo $row_Recordset1['nom']; ?></td>
          <td><?php echo $row_Recordset1['prenom']; ?></td>
          <td><?php echo $row_Recordset1['telephone']; ?></td>
          <td><?php echo $row_Recordset1['email']; ?></td>
          <td><?php echo $row_Recordset1['commentaires']; ?></td>
        </tr>
        <?php
    }
    0
  2. Onizuguts Messages postés 2 Statut Membre
     
    J'ai résolu le problème en début d'aprés-midi et le code marche niquel comme ça :

    <?php do { ?>
        <tr>
          <td><?php echo $row_Recordset1["'nom'"]; ?></td>
          <td><?php echo $row_Recordset1["'prenom'"]; ?></td>
          <td><?php echo $row_Recordset1["'telephone'"]; ?></td>
          <td><a href="mailto:<?php echo $row_Recordset1["'email'"]; ?>"><?php echo $row_Recordset1["'email'"]; ?></a></td>
          <td><?php echo $row_Recordset1["'commentaires'"]; ?></td>
        </tr>
        <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>


    C'est vrai que ta solution parait plus logique mais bon...ça marche comme ça !
    Merci pour ton aide ! :)
    0
  3. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    salut

    une petite aide pour optimiser ton script.
    Remplace ton code par :
    <?php do { ?>
        <tr>
          <td><?php echo $row_Recordset1["'nom'"] , '</td>
          <td>' , $row_Recordset1["'prenom'"] , '</td>
          <td>' , $row_Recordset1["'telephone'"] , '</td>
          <td><a href="mailto:' , $row_Recordset1["'email'"] , '">' , $row_Recordset1["'email'"] , </a></td>
          <td>' , $row_Recordset1["'commentaires'"] , '</td>
        </tr>'; ?>
        <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>


    Astuce trouvée sur : https://openclassrooms.com/fr/courses
    0