(在每个结果中包含多对多结果的最佳做法?)
每个帖子都有很多资源。我想告诉他们。 它分开工作,如下:
资源和帖子之间的所有连接:
$result = $mysqli->query("SELECT *
FROM kopplaKontorsplatsResurser
INNER JOIN resurser
ON kopplaKontorsplatsResurser.resurs_id=resurser.id
");
$num_results = mysqli_num_rows($result);
for($i=0; $i<$num_results; $i++) {
$row = $result->fetch_array(MYSQLI_ASSOC);
echo 'Resource with id: '.$row[resurs_id];
echo '<br>';
echo 'Is connected to the post: '.$row[kontorsplats_id];
echo '<br>';
echo 'What resource is this? '.$row[resurs];;
echo '<br><br>';
}
这是我获取每个帖子(kontorsplats)的信息
$result = $mysqli->query("SELECT *
FROM kontorsplatser
INNER JOIN geo_orter
ON kontorsplatser.ort_id=geo_orter.ort_id
");
$num_results = mysqli_num_rows($result);
for($i=0; $i<$num_results; $i++) {
$row = $result->fetch_array(MYSQLI_ASSOC);
echo '<div class="kontorsplats">';
$arbetsplatsensID = $row[id];
$rubriken = $row[rubrik];
$ort_id = $row[ort_id];
$ort = $row[ortnamn];
echo '<h4>'.$rubriken.'</h4>';
echo '<h5><a href="">'.$ort.'</a></h5>';
---> Show the connected resources here. :D <------
echo '</div>';
我正在考虑创建一个包含所有资源及其连接的数组,并为每个div循环遍历它,但这会是最有效的方法吗?
介入包含别名: devshed
答案 0 :(得分:0)
我这样解决了,仍然有一种挥之不去的感觉,它不是最佳的,但它有效!
首先将所有连接和资源保存到数组中
$result = $mysqli->query("SELECT *
FROM kopplaKontorsplatsResurser
INNER JOIN resurser
ON kopplaKontorsplatsResurser.resurs_id=resurser.id
");
$num_results = mysqli_num_rows($result);
for($i=0; $i<$num_results; $i++) {
$row = $result->fetch_array(MYSQLI_ASSOC);
$dennaKontorsplats = $row[kontorsplats_id];
$resursens_id = $row[resurs_id];
$resurskopplingar[$dennaKontorsplats][$resursens_id] = $row[resurs];
}
然后为每个帖子循环播放
//Leta upp alla resurskopplingar:
foreach ($resurskopplingar as $kontoretsid => $lvl1) {
if($arbetsplatsensID == $kontoretsid){
foreach ($lvl1 as $lvl2) {
echo $lvl2;
}
}
}