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);
    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

4

1 に答える 1

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;
        }
        }
    }
于 2012-08-14T14:40:42.417 に答える