Je suis nouveau sur php et j'ai pensé que ce serait facile parce que j'ai réussi à faire beaucoup plus de choses difficiles auparavant avec php, mais je me suis bloqué. Apprécierions si quelqu'un pourra me aider ..Php, Mysql. Générer une table basée sur un tableau multidimensionnel
Par exemple, j'ai trois tables:
- 1ère table Je détiens les noms de nourriture (il est table sous-catégorie)
- 2e tableau I attente type de la nourriture (il est table de catégorie)
- 3ème table, je tiens ce que chaque personne par id aime manger (table principale, liée à deux autres)
TblFood:
- Food_ID;
- Food_name
TblTypes:
- type_id;
- TYPE_NAME
TblLikes:
- person_id;
- Food_ID;
- type_id
Ces tableaux ne sont que des exemples que je tiens, mais je pense qu'il sera plus facile de comprendre ce que je veux poser. J'ai donc besoin que je sois capable de sortir des types de nourriture et des noms exacts d'aliments liés à ces types, basés sur TblLikes. Par exemple, si je choisis personne avec id person_id = '1' Je dois sortie »
Personne 1 aime:
FRUIT
- pommes
- bananes
- pêches
- pastèque
LÉGUMES
- pommes de terre
- oignons
VIANDE
- dinde
- porc
etc.
- Un autre nom de l'aliment lié au type ci-dessus
Donc, fondamentalement, j'ai besoin de ce type de nourriture et le nom de la nourriture seront associés les uns aux autres en fonction de TblLikes.
Voilà comment je l'ai fait tout à ce jour:
mysql_select_db($database_localhost, $localhost);
$query_likes = " SELECT TblLikes.Person_id, TblLikes.Type_ID, TblTypes.Type_name, TblLikes.Food_ID, TblFood.Food_name
FROM (TblFood RIGHT JOIN TblLikes ON TblFood.Food_ID = TblLikes.Food_ID) LEFT JOIN TblTypes ON TblLikes.Type_ID = TblTypes.Type_ID
WHERE TblLikes.Person_id = '1' ";
$likes = mysql_query($query_likes, $localhost) or die(mysql_error());
$row_likes = mysql_fetch_assoc($likes);
$totalRows_likes = mysql_num_rows($likes);
?>
<table border="1" cellpadding="5" cellspacing="5">
<tr>
<td>Types of food</td>
</tr>
<tr>
<?php for ($i = 1; $i <= sizeof($row_likes['Type_name']); $i++)?>
<td><?php echo $row_likes['Type_name'];?></td>
</tr>
<?php for ($i = 1; $i <= sizeof($row_likes['Food_name']); $i++) {
echo $row_likes[$i]['Food_name'];
}?>
</table>
Nous vous remercions à l'avance ..
Changé quelques lignes dans le code pour ce en raison d'erreurs d'écho: '$ html = "
";.. foreach ($ query_food_likes que $ food_likes_Id => $ food_likes_Data) { $ html = "- " food_likes_Data $ [ 'Food_name'] "
"... } $ html. = "
Désolé pour les erreurs, l'erreur foreach que vous recevez est due au fait que j'ai fait une erreur la seconde requête.Il devrait être: '$ food_likes = mysql_query ($ query_food_likes, $ localhost) ou die (mysql_error());' – Nightwolf