Affichage d'une requete dans un tableau à deux dimmenssions

Eléphant du PHP | 86 Messages

12 nov. 2010, 06:50

Bonsoir!
Je souhaite afficher les données d'une requête dans un tableau dont les dimensions varient et contiennent les données de la requête.
voici le code que j'ai réalise et qui me fatigue
//----------------------------
$database->requete("select nom_phar, groupe, id_phar from PHARMACIES");
$data=mysql_fetch_array($database->requete);
 if(( $data = mysql_fetch_array($database->requete))!= NULL)
{                
do
{
         echo '<table bgcolor="#FFFFFF" width="650px">'."\n";
         echo '<tr height="25" id="legend">';
		 echo '<td align="center"><b>&nbsp;</b></td>';
         echo '<td align="center"><b>'.$data['groupe'].'</b></td>';
		 $test=$data['groupe'];
         echo '</tr>'."\n";
		 
		 $req="select nom_phar, groupe, id_phar from PHARMACIES where groupe='$test'";
		 $rep=mysql_query($req);
		 $dat=mysql_fetch_array($rep);
		 do 
		 {
		 echo '<tr>';
		 echo '<td bgcolor="#f3fbff" height="25" align="center">&nbsp;'.$dat['nom_phar'].'</td>';
		 echo'</tr>';
		 }while(( $dat = mysql_fetch_array($dat))!= NULL);
  }while(( $data = mysql_fetch_array($database->requete))!= NULL);
        echo '</table>'."\n";

   
   		 


//----------------------------

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 nov. 2010, 12:08

Un peu succinct comme message, tu pourrais détailler ce que tu veux faire et ce qui ne va pas ?

Parceque là tu nous demandes de comprendre ton problème seulement à partir du code, code qui de plus ne fonctionne pas !

Eléphant du PHP | 86 Messages

12 nov. 2010, 16:41

En disant ceci tu m'aide déjà.
Voilà je cherche à afficher les infos d'une table qui contient les informations:groupe et pharmacie.Une pharmacie se trouve dans un groupe de ce fait je souhaite afficher les groupes dans un tableau de sorte à pouvoir lister juste en dessous de chaque groupe les pharmacies appartenant à ce groupe
Finalement après quelques correction j'arrive à afficher uniquement la première colonne
voici le code revu
 $database->requete("select nom_phar, groupe, id_phar from PHARMACIES");
   $data=mysql_fetch_array($database->requete);
if(( $data = mysql_fetch_array($database->requete))!= NULL)
 {    
    echo '<table bgcolor="#FFFFFF" width="650px">'."\n";            
  do
{
         echo '<tr height="25" id="legend">';
		 //echo '<td align="center"><b>&nbsp;</b></td>';
         echo '<td align="center"><b>'.$data['groupe'].'</b></td>';
		 $test=$data['groupe'];
         echo '</tr>'."\n";
		 
		 $database->requete("select nom_phar, groupe, id_phar from PHARMACIES where groupe='$test'");
		 $dat = mysql_fetch_array($database->requete);
		 do 
		 {
		 echo '<tr>';
		 echo '<td bgcolor="#f3fbff" height="25" align="center">&nbsp;'.$dat['nom_phar'].'</td>';
		 echo'</tr>';
		 }while(($dat = mysql_fetch_array($database->requete))!= NULL);
  }while(($data = mysql_fetch_array($database->requete))!= NULL);
        echo '</table>'."\n";
		  echo"$test";

		}

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 nov. 2010, 18:00

Si ce que tu veux c'est :

- groupe 1
-- pharmacie 1.1
-- pharmacie 1.2

- groupe 2
-- pharmacie 2.1
-- pharmacie 2.2

Alors tu n'as besoin que d'une requête :
("select nom_phar, groupe, id_phar from PHARMACIES");
Mais il te faut ajouter un tri par groupe.

Ensuite tu boucles, tu testes le groupe : s'il est vide (pour la première itération) ou différent du groupe courant, alors tu sais que tu changes de groupe, tu l'affiches comme tu veux et tu le stockes en "groupe courant".

Là tu as une requête dans une boucle, ça peut nuire au performance et c'est inutile.

ViPHP
ViPHP | 5462 Messages

12 nov. 2010, 18:24

et si t'as PDO tu peux direct faire ca avec FETCH_GROUP :wink:
vos-contributions/affichage-par-categor ... 54289.html