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
A voir également:
- Resultat de requête dans un tableau multidime
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Imprimer un tableau excel - Guide
4 réponses
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>
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 :
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.
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.
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>';