Resultat de requête dans un tableau multidime

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. Donne-nous la partie de ton script qui lit la base et crée le tableau.
    0
    1. 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. 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
    2. Merci pour ta réponse même si elle ne m'aide pas plus.
      Je vais continuer à chercher.
      0
      1. 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. Je te remercie de ton aide. je vais tester ta solution.
          0