Probleme Tableau dynamique php

Bonjour, je voudrais realiser un tableau dynamique php à partir d'une base de donnees myql
dans mon script le resultat prenom s'affiche dans chaque cellule.
Je voudrais que les prenoms descendent d'une cellule chaque jour a fin qu'une rotation soit effectué.
donc si quelqu'un pouvait m'aider ou me mettre sur une piste !!!

<html>
<body>
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT prenom FROM vaches';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes

// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

?>
</body>
</html>
Configuration: Windows XP
Firefox 2.0.0.12

32 réponses

Résumé de la discussion

Un script PHP doit générer un tableau dynamique à partir d'une base MySQL afin que les prénoms descendent d'une cellule chaque jour et permettent une rotation automatique des contenus. Des réponses suggèrent notamment d'utiliser un champ ordre et un identifiant auto-incrémenté, puis d'interroger la table avec ORDER BY ordre et LIMIT pour afficher un nombre fixé de noms dans le tableau. D'autres évoquent l'emploi d'un tutoriel dédié, ou l'ajout de champs supplémentaires comme id et ordre, et l'affichage peut être organisé en grille (ex: 3x3) ou en plusieurs colonnes selon le besoin.

Bobot (l’IA à votre service)
  1. Merci un milliard de fois des que je mets mon site ligne je te relance pour tu vois ton lien merci encore !!!
    1. MDR J'ai trouvé !!!!!!!!!!!!

      Quasi sur que ça marchera, c'était une erreur con évidente avec ton HTML :

      $i=1;
      echo '<table bgcolor="#FFFFFF">'."\n"; 
      while($rep3 = mysql_fetch_array($req3)){
      
      	if($i==1){
      		echo '<tr>';
      	}    
          echo '<td bgcolor="#CCCCCC">'.$rep3['prenom'].'</td>';
      	if($i==4){
      		echo '</tr>'."\n"; 
      		$i=0;
      	} 
      
      $i++;
      }
      echo '</table>'."\n"; 
      1. Bonjour, c'est curieux j'ai inversé les <tr> et <td> et le resultat est tres curieux sur IE7 ca ne fonctionne pas (affichage sur une colonne) par contre sur Mozilla et Netscape ca marche impecable il y a une raison a cela ?
        1. Nan c pas bon

          <table bgcolor="#FFFFFF">
          <tr><td bgcolor="#CCCCCC">lucas</td><td bgcolor="#CCCCCC">yanis</td><td bgcolor="#CCCCCC">jimmy</td><td bgcolor="#CCCCCC">yan</td></tr>
          <td bgcolor="#CCCCCC">gaby</td><td bgcolor="#CCCCCC">dany</td><td bgcolor="#CCCCCC">olivier</td></tr>
          <td bgcolor="#CCCCCC">gilles</td><td bgcolor="#CCCCCC">jamy</td><td bgcolor="#CCCCCC">jean michel</td></tr>
          <td bgcolor="#CCCCCC">sylvain</td><td bgcolor="#CCCCCC">mathieu</td></table>
          1. nan c pas bon

            <table bgcolor="#FFFFFF">
            <tr><td bgcolor="#CCCCCC">lucas</td><td bgcolor="#CCCCCC">yanis</td><td bgcolor="#CCCCCC">jimmy</td><td bgcolor="#CCCCCC">yan</td></tr>
            <td bgcolor="#CCCCCC">gaby</td><td bgcolor="#CCCCCC">dany</td><td bgcolor="#CCCCCC">olivier</td></tr>
            <td bgcolor="#CCCCCC">gilles</td><td bgcolor="#CCCCCC">jamy</td><td bgcolor="#CCCCCC">jean michel</td></tr>
            <td bgcolor="#CCCCCC">sylvain</td><td bgcolor="#CCCCCC">mathieu</td></table>
            1. C'est complètement faux, et c'est normal... Bref

              Si tu en veux 4 par lignes je pense que c'est ça :

              $i=1;
              echo '<table bgcolor="#FFFFFF">'."\n"; 
              while($rep3 = mysql_fetch_array($req3)){
              
              	if($i==1){
              		echo '<tr>';
              	}    
                  echo '<td bgcolor="#CCCCCC">'.$rep3['prenom'].'</td>';
              	if($i==4){
              		echo '</tr>'."\n"; 
              		$i=1;
              	} 
              
              $i++;
              }
              echo '</table>'."\n"; 


              Et ça doit marcher, tu me passe le code HTML que ce truc si génère s'il te plait :)

              A pluus !
              1. Oula, je rentre et je regarde ton truc, tu dois avoir de jolie fautes dans l'HTML avec ça. Tu me m'envoyer le code source HTML généré par ça stp :)

                Merci à pluss
                1. Salut voici le code HTML

                  <table bgcolor="#930204">
                  <td bgcolor="#CCCCCC">jimmy</td><td bgcolor="#CCCCCC">yan</td></tr>
                  <td bgcolor="#CCCCCC">gaby</td><td bgcolor="#CCCCCC">dany</td><td bgcolor="#CCCCCC">olivier</td></tr>
                  <td bgcolor="#CCCCCC">gilles</td><td bgcolor="#CCCCCC">jamy</td><td bgcolor="#CCCCCC">mathieu</td></tr>
                  <td bgcolor="#CCCCCC">sylvain</td><td bgcolor="#CCCCCC">jean michel</td><td bgcolor="#CCCCCC">lucas</td></tr>
                  <td bgcolor="#CCCCCC">yanis</td></table>
              2. C'est pas mal mais avec tes valeurs l'affichage n'etait pas terrible.
                J'ai bidoullé les valeurs sans trop comprendre le raisonement de la condition et j'ai toujours un petit soucis dans l'affichage

                pour un tableau de 3 lignes sur 4 colones j'ai la cellule en haut a droite qui n'est jamais occupé .

                $req3 = mysql_query('SELECT*FROM compte ORDER BY ordre LIMIT 0,12');

                $i=3;
                echo '<table bgcolor="#930204">'."\n";
                while($rep3 = mysql_fetch_array($req3)){

                if($i==12){
                echo '<tr>';
                }
                echo '<td bgcolor="#CCCCCC">'.$rep3['prenom'].'</td>';
                if($i==4){
                echo '</tr>'."\n";
                $i=1;
                }

                $i++;
                }
                echo '</table>'."\n";
                1. merci de ton aide c'est presque bon j'ai modifié les variables car l'affichage n'etait pas bon
                  pour un tableau de 3 lignes sur 4 colones j'ai la cellule en haut a droite qui n'est jamais occupé .

                  $req3 = mysql_query('SELECT*FROM compte ORDER BY ordre LIMIT 0,12');

                  $i=3;
                  echo '<table bgcolor="#930204">'."\n";
                  while($rep3 = mysql_fetch_array($req3)){

                  if($i==12){
                  echo '<tr>';
                  }
                  echo '<td bgcolor="#CCCCCC">'.$rep3['galleries'].'</td>';
                  if($i==4){
                  echo '</tr>'."\n";
                  $i=1;
                  }

                  $i++;
                  }
                  echo '</table>'."\n";
                  1. Bien, remplace ça :

                    echo '<table bgcolor="#FFFFFF">'."\n"; 
                    while($rep3 = mysql_fetch_array($req3)){
                           echo '<tr>';
                           echo '<td bgcolor="#CCCCCC">'.$rep3['prenom'].'</td><td bgcolor="#CCCCCC"></td><td bgcolor="#CCCCCC"></td>';
                           echo '</tr>'."\n"; 
                    }
                    echo '</table>'."\n"; 


                    Par :

                    $i=1;
                    echo '<table bgcolor="#FFFFFF">'."\n"; 
                    while($rep3 = mysql_fetch_array($req3)){
                    
                    	if($i==1){
                    		echo '<tr>';
                    	}    
                        echo '<td bgcolor="#CCCCCC">'.$rep3['prenom'].'</td>';
                    	if($i==3){
                    		echo '</tr>'."\n"; 
                    		$i=1;
                    	} 
                    
                    $i++;
                    }
                    echo '</table>'."\n"; 


                    Et si ça marche je m'appelle Cresus (j'ai pas pu tester c'est pour ça). En cas d'erreur dis la moi.

                    A pluuuusss !
                    1. Alors dans quel ordre ? d'abord la première ligne puis la seconde... Ou d'abord la première colonne puis la seconde... ?
                      1. On commencerai sur la premiere ligne
                    2. la les noms defile toujours dans la meme colonne et moi je voudrais qu'ils tourne dans tout le tableau
                      c'est possible ?
                      1. Oui, remplace ça :

                        echo '<table bgcolor="#FFFFFF">'."\n"; 
                        while($rep3 = mysql_fetch_array($req3)){
                               echo '<tr>';
                               echo '<td bgcolor="#CCCCCC">'.$rep3['prenom'].'</td>';
                               echo '</tr>'."\n"; 
                        }
                        echo '</table>'."\n"; 


                        Par :

                        echo '<table bgcolor="#FFFFFF">'."\n"; 
                        while($rep3 = mysql_fetch_array($req3)){
                               echo '<tr>';
                               echo '<td bgcolor="#CCCCCC">'.$rep3['prenom'].'</td><td bgcolor="#CCCCCC"></td><td bgcolor="#CCCCCC"></td>';
                               echo '</tr>'."\n"; 
                        }
                        echo '</table>'."\n"; 
                        


                        Dis moi si c'est ce que tu veux !
                        1. Ha bah tu veux mettre quoi dans les autres cellules ? D'autres truc de ta bdd ? Donne moi le nom des champs !

                          Et je croyais que tu voulais 7 ligne, tu n'en veux plus que 3 ?

                          A pluss
                          1. Je ne veux pas rajouter de champs suplementaires,
                            Je veux savoir si je peut forcer l'afichage du tableau (3 *3)
                            au lieu d'une colone vertical avec 9 cellules tout en conservant la rotation possible ?
                        2. Salut !!!!
                          La mon tableau s'affiche sur une colone !
                          et je voudrais avoir un tableau de 9 celules (3*3) .
                          Je sais pas ci c clair ?
                          1. Alors pour le soir à 10 heures ça s'appelle un cron, ça se règle sur le serveur, je te laisse chercher sur le NET !

                            Et je ne comprends pas la seconde question !!

                            Bye :)
                            1. Est il possible de forcer l'afichage du tableau 3 lignes 3 colonnes par ex ?
                              1. Bonjour, toujours moi qui t'embetes !!!
                                Question que dois rajouter au code pour la rotation ne s'effectue que le soir a 10h00 disons ?
                                • 1
                                • 2