Resultat de requête dans un tableau multidime
degota
Messages postés
4
Statut
Membre
-
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
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
-
Donne-nous la partie de ton script qui lit la base et crée le tableau.
-
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>-
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.
-
-
Merci pour ta réponse même si elle ne m'aide pas plus.
Je vais continuer à chercher. -
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>';