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
A voir également:

4 réponses

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
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
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
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
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
degota Messages postés 4 Statut Membre
 
Je te remercie de ton aide. je vais tester ta solution.
0