Resultat de requête dans un tableau multidime

degota Messages postés 4 Statut Membre -  
degota Messages postés 4 Statut Membre -
Bonjour,

J'ai un resultat de requete qui me donne un tableau dans ce genre :

Ananas glucide 1
Ananas lipide 2
Ananas proteine 4
Ananas sucre 5
Ananas eau 3
Ananas fibre 1
Orange glucide 2
Orange lipide 5
Orange proteine 6
Orange sucre 4
Orange eau 1
Orange fibre 3

et j'aimerais affiché dans ma page web ce tableau sous la forme :

glucide lipide proteine sucre eau fibre
Ananas 1 2 4 5 3 1
Orange 2 5 6 4 1 3
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. croy Messages postés 457 Statut Membre 114
     
    Donne-nous la partie de ton script qui lit la base et crée le tableau.
    0
  2. degota Messages postés 4 Statut Membre
     
    Merci pour ta réponse.
    Voilà les rquetes à partir desquelles, je crée le tableau que j'aimerais transformer :

    $query="select * from roles_fruits where id='".$id."'";
    $rows=sqlQuery($db,$query);

    if (count($rows) == 0) return;
    $row=$rows[0];

    <table>
    for ($i=0, $n=count( $rows ); $i < $n; $i++)
    {
    $row=& $rows[$i];

    $query2="select * from nature_element where id='".$row['nature_element_id']."'";
    $rows2=sqlQuery($db,$query2);
    $row2=$rows2[0];

    $query1="select * from type where id='".$row['type']."'";
    $rows1=sqlQuery($db,$query1);
    $row1=$rows1[0];

    echo "<tr><td>".ucfirst($row2[resource_name])."</td><td>".$row2[type_element]."</td><td>".$row1[type_id]."</td></tr>";
    }

    </table>
    0
    1. croy Messages postés 457 Statut Membre 114
       
      Commence par faire une seule requête avec une jointure :
      SELECT ... FROM roles_fruits AS R, nature_elements AS N
         WHERE R.nature_element_id = N.id
      


      Ensuite boucle sur les enregistrements retournés que tu placeras directement (pas de SELECT en plus) dans ton tableau.

      Ceci sera plus clair et plus performant.
      0
  3. degota Messages postés 4 Statut Membre
     
    Merci pour ta réponse même si elle ne m'aide pas plus.
    Je vais continuer à chercher.
    0
  4. croy Messages postés 457 Statut Membre 114
     
    Un script plus élaboré qui pourrait correspondre à ton besoin avec une unique requête mySql :

    $query = "SELECT N.resource_name, N.type_element, T.type_id"
    	. " FROM roles_fruits AS R,"
    		. "nature_element AD N,"
    		. "type as T"
    	. " WHERE id=' . $id"
    		. ""AND R.nature_element_id = N.id"
    		. " AND R.type = T.id":
    $rows = mysql_query( $db, $query );
    
    if (count($rows) == 0) return;
    echo "<table>";
    while( ($row = mysql_fetch_array( $rows ) )
    	{
    	echo "<tr>";
    	echo 	"<td>" . ucfirst( $row[ 'resource_name' ] ) . "</td>";
    	echo	"<td>­" . $row[ 'type_element' ] . "</td>";
    	echo	"<td>" . $row[ 'type_id'] . "</td>";
    	echo "</tr>";
    	} 
    echo '</table>';
    
    0
    1. degota Messages postés 4 Statut Membre
       
      Je te remercie de ton aide. je vais tester ta solution.
      0