PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 16-05-2010 20:32:53

rimbaut
Membre
Inscription : 15-05-2010
Messages : 11

Afficher un tableau avec une boucle while

Bonsoir à tous,
Voici mon problème. J'ai 3 pages ; une page où se trouve un formulaire dont je récupère les champs sur la page inscription et avec laquelle j'enregistre les données de l'utilisateur. La 3e page affiche une première question. Une question est composé de 4 mots. Chaque mot figure sur une ligne et dans une colonne. Tous les mots sont dans la table "mot" qui comprend 9 lignes et 4 colonnes donc 36 mots.

La 1er ligne correspond à la 1er question. Donc j'ai réussi à afficher les 4 mots mais il s'affiche de façon verticale c'est à dire sur la colonne 1. Or les 4 mots doivent s'afficher dans les 4 colonnes. Ce qui n'est pas le cas puisque comme je le disais, ils s'affichent verticalement sur la colonne 1.

Voici le code :


<?php
session_start();
//print_r($_SESSION);
extract($_SESSION);


/*
if(!array_key-exists("idUser", $_SESSION)) {
   header("Location : form.php");
   }
 */

 
 /*
  if(isset($_SESSION['idQuestion'])) {
      echo 'La variable "idQuestion" existe et vaut: ' . $_SESSION["idQuestion"];
    echo 'Lavariable "idUser" existe et vaut: ' . $_SESSION["idUser"];
    exit;
    }  
*/

//connexion au serveur
     $host = "localhost";
     $user = "root";
     $pass = "";

     $connexion=@mysql_connect($host, $user, $pass) or die("La connexion a échoué :".mysql_error());

//connexion à la BD
   $bd = "profilapprenant";
   @mysql_select_db($bd, $connexion) or die ("selection impossible:".mysql_error());
   
   
//Requete selection
$query='SELECT * from mot WHERE
                 ligne = "'
.$numQuestion.'" ORDER BY colonne ASC';
 
//On envoie la requete       
$result=mysql_query($query) or die("La requete a échoué:".mysql_error());


// début du tableau
    echo '<table bgcolor="#FFFFFF">'."\n";

  // première ligne on affiche les titres des colonnes
        echo '<tr>';
        echo '<td bgcolor="#669999"><b><u>Colonne 1</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>Colonne 2</u></b></td>';
      echo '<td bgcolor="#669999"><b><u>Colonne 3</u></b></td>';
      echo '<td bgcolor="#669999"><b><u>Colonne 4</u></b></td>';
        echo '</tr>'."\n";
   
 while($var=mysql_fetch_array($result)){
    extract($var);
 
  echo '<tr>';
        echo '<tr><td bgcolor=\"#CCCCCC\">'.$var['mot'].'</td></tr>';
       
    //    echo '</tr>'."\n";

   }
    echo '</table>'."\n";
    // fin du tableau.

/*
 while($var=mysql_fetch_array($result)){
    extract($var);
  echo "<input type=\"text\" name=\"score[idMot]\" size=\"2\"/>";
*/
 
  echo "<br>";
 
  echo "<input type=\"submit\" value=\"Envoyer\"/>";
 
?>
 

Quelqu'un peut il m'aider à résoudre ce problème ?

Merci d'avance

Hors ligne

#2 17-05-2010 08:41:14

Sergnal
Membre
Inscription : 17-06-2009
Messages : 38

Re : Afficher un tableau avec une boucle while

Bonjour,

Quand tu dis :

la table "mot" qui comprend 9 lignes et 4 colonnes donc 36 mots.

je suppose que tu as mis un nom différent à chaque colonne non ? Donc lors de ton while tu devrais faire comme ça :

while($var=mysql_fetch_array($result)){
echo '<tr>';
        echo '<td bgcolor=\"#CCCCCC\">'.$var['nomcolonne1'].'</td>';
        echo '<td bgcolor=\"#CCCCCC\">'.$var['nomcolonne2'].'</td>';
        echo '<td bgcolor=\"#CCCCCC\">'.$var['nomcolonne3'].'</td>';
        echo '<td bgcolor=\"#CCCCCC\">'.$var['nomcolonne4'].'</td>';
echo '</tr>'."\n";
   }
 

Si ça ne marche pas fait un

var_dump($var);

dans ta boucle while et copie colle le résultat ici, ce sera plus simple.

Hors ligne

Pied de page des forums