Problme d'affichage (PHP)

Bonjour,

J'ai un petit problème avec PHP. je débute et ai fait une page d'essai, je n'arrive pas à afficher ma page. Il doit surement y avoir un petit défaut dans mon code. Pouvezvou m'aider s'il vous plait.
Merci d'avance.

// Déclaration des paramètres de connexions
$user="root";
$passwd="mysql";
$host="localhost";
$bdd="base2donnee";

// Déclaration des variables

// Connexion à la base de données Bd1
mysql_connect($host,$user ,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd);

?>

<!---------------Titre----------------->
<br>
<h1> <p align = "center" > Liste des utilisateurs </p> </h1>

<!------------Création du tableau---------->
<br>
<br>
<table border = "1" bordercolor = "66CCFF">
<tr>

<td align = "center"> <b> Identifiant de l'utilisateur </b> </td>
<td align = "center" style = "padding-left = 7%"> <b> Nom de l'utilisateur </b> </td>
<td align = "center" style = "padding-left = 7%"> <b> Prénom de l'utilisateur </b> </td>
<td align = "center" style = "padding-left = 7%"> <b> Adresse de l'utilisateur </b> </td>
<td align = "center" style = "padding-left = 7%"> <b> Email de l'utilisateur </b> </td>
<td align = "center" style = "padding-left = 7%"> <b> Téléphone de l'utilisateur </b> </td>
</tr>
<tr>
<?php
mysql_connect ($host,$user ,$passwd) or die("erreur de connexion au serveur");
$r = mysql_query("select * from utilisateur order by nom");
$i=0 ;
while ($row = mysql_fetch_array)

if ($i%2 == 0) {$col = "#DDDDDD";} else {$col = "#FFFFFF";}
?>
<tr>
<td> <? = $row ['nom'] ?> </td>
<td> <? = $row ['prenom'] ?></td>
<td> <? = $row ['adresse'] ?></td>
<td> <? = $row ['email'] ?> </td>
<td> <? = $row ['telephone'] ?></td>
</tr>
<?
endif

$i=++;
?>
Configuration: Windows XP Internet Explorer 7.0

53 réponses

Résumé de la discussion

Une page PHP destinée à afficher des utilisateurs depuis une base MySQL ne s'affiche pas comme prévu et suscite des conseils pour corriger la connexion et l'affichage des données. Des réponses insistent sur la correction de la boucle de récupération et l'évitement d'une seconde connexion, en utilisant une requête stockée dans $r et while ($row = mysql_fetch_array($r)). Autre point courant, il est conseillé d'éviter les balises PHP courtes et d'afficher les champs avec echo, par exemple , pour assurer compatibilité et affichage correct. En outre, certains pointent l'importance d'une requête SQL cohérente et suggèrent que supprimer une seconde connexion peut éviter des erreurs liées à la base.

Bobot (l’IA à votre service)
  1. oui je suis d'accord mais si j'enlève mes balise il ne va pas reconaitre mon code php et si je met une balise en haut a coté du <tr> sa ne vas pas fonctionné. <tr> n'est pas une instruction php
    1. atten il y a truc que je ne comprend pas... pk enlève tu les balise php ?? et tu met un echo devant <tr> ??
      1. oui je l'est lu mais entre temps j'ai chercher un moment et je n'est pas réactualiser ma page. alors j'ai eu plein de réponse d'un coup. mais tkt je me penche sur ta reponse la
        1. tu lis ce que j'écrit ????
          je t'ai donné la solution toute a l'heure :

          while ($row = mysql_fetch_array)
          {

          if ($i == 0) {$col = "#DDDDDD";} else {$col = "#FFFFFF";}

          echo "<tr>
          <td> ".$row ['nom'] ." </td>
          <td> ".$row ['prenom']."</td>
          <td> ". $row ['adresse'] ."</td>
          <td> ". $row ['email'] ." </td>
          <td> ". $row ['telephone'] ."</td>
          </tr>";

          $i++;
          }
          1. le $i++ sa équivaut a dire i= i+1. c'est pour incrémenté ta variable.
            1. je ne sais pas pourquoi tu t'obstines
              il ne faut pas que tu ferme ?> regarde ce que j'ai fait il faut utiliser echo car sinon tu brise ta boucle while de plus on ne met jamais de = après une ouverture de balise php ca ne veut rien dire
              1. merci pour ce dernier conseil il m'a été util j'avai oublié une balise </tr> et jai rajouté des "php" aux <?. enfin j'ai du nouveau j'ai encore des erreurs sur ces lignes :

                <td> <?php = echo $row ['nom']?> </td>
                <td> <?php= echo $row ['prenom']?></td>
                <td> <?php = echo $row ['adresse']?></td>
                <td> <?php = echo $row ['email'] ?> </td>
                <td> <?php = echo $row ['telephone']?></td>
                1. je pense que je ne dois pas avoir assez d'expérience mais je ne comprend pas :

                  -$i=++;
                  qui selon moi devrait être remplace par $i++;

                  -$i%2
                  dont je ne comprends absolument pas l'utilité
                  1. bon je croit que j'ai encore résolu une nouvelle erreur
                    aissaie ça:

                    while ($row = mysql_fetch_array)
                    {
                    
                    
                    if ($i%2 == 0) {$col = "#DDDDDD";} else {$col = "#FFFFFF";}
                    
                    echo "<tr>
                    <td> ".$row ['nom'] ." </td>
                    <td> ".$row ['prenom']."</td>
                    <td> ". $row ['adresse'] ."</td>
                    <td> ". $row ['email'] ." </td>
                    <td> ". $row ['telephone'] ."</td>
                    </tr>";
                    
                    $i=++;
                    }
                    
                    


                    je mettrai ma main au feu que ça marche
                    1. t'as dû mal structuré ton fichier....

                      verifies bien tes balises HTML..
                      1. j'ai rajouté les accolade et cela me donne cette erreur sur le </head> et plus rien d'afficher.
                        1. Les point virgules je devait les avoir donc rien de new. bon courage pour ton brevet.
                          • 1
                          • 2
                          • 3