2013-05-26 41 views
1

我想使用for each循環顯示MYSQL數據庫中兩個表的結果。目前,我有兩個表分成兩個獨立的迴路是這樣的:如何在每個循環的php中使用多個表的調用

<?php 
    $i = 0; 
    foreach (array_reverse ($articles) as $article){?> 
      <div class="greyvertical midtopmargin item leftpadding rightpadding"> 
       <a href="article.php?id=<?php echo $article['article_id']; ?>"><img src="../lifestyle/photos/articles/<?php echo $article['photo_folder']; ?>/<?php echo $article['photo_1']; ?>" alt="item"> 
       <h5 class="whitetext text2 extrabold smalltoppadding leftpadding"><?php echo $article['article_title']; ?></h5></a> 
       <p class="meta whitetext leftpadding smalltoppadding"> 
        <?php echo $article['article_summary']; ?></p> 
       <a href="article.php?id=<?php echo $article['article_id']; ?>" class="whitetext text2 mediumfont leftpadding midbottommargin">READ ME</a> 
      </div> 
     <?php if (++$i == 5) break; 
} ?> 

    <?php 
    $i = 0; 
    foreach (array_reverse ($posts) as $post){?> 
      <div class="greyvertical midtopmargin item leftpadding rightpadding"> 
       <a href="post.php?id=<?php echo $post['post_id']; ?>"><img src="../lifestyle/photos/blog/<?php echo $post['photo_folder']; ?>/<?php echo $post['photo_bg']; ?>" alt="item"> 
       <h5 class="whitetext extrabold text2 leftpadding smalltoppadding"><?php echo $post['post_title']; ?></h5></a> 
       <p class="meta leftpadding whitetext smalltoppadding"> 
        <?php echo $post['post_summary']; ?></p> 
       <a href="post.php?id=<?php echo $post['post_id']; ?>" class="whitetext text2 mediumfont leftpadding midbottommargin">READ ME</a> 
      </div> 
      <?php if (++$i == 5) break; 
      } ?> 

正如你可以看到他們是有細微的差別幾乎是相同的,但我完全被卡住瞭如何將兩者結合起來,沒有他們是獨立的,因爲它是現在。任何人都可以讓我知道如何將兩個循環合併爲一個?即,我想合併文章和帖子表,以便它們將顯示爲一個而不是單獨顯示。在此先感謝你們。

+1

是什麼在'$ article'和'$ posts'? – Farkie

+0

這似乎是沿着你的發展,你偏離了模式恕我直言的某處。爲了解決您的問題 - 您應該簡單地設置一個條件來檢查是否存在只在$ article或$ posts中出現的值,然後在foreach中做出相應的反應。 – Ohgodwhy

+0

$ article = new Article; $ post = new Postl; $ articles = $ article-> fetch_all(); $ posts = $ post-> fetch_all(); – tezzataz

回答

0

在你的問題上提出的意見是有意義的,你應該考慮它們,但是有一種方法可以通過使用PHP的MultipleIterator一次迭代兩個數組。下面是如何這可能爲你工作更簡化的例子: -

$articles = array('article 1','article 2','article 3'); 
$posts = array('post 1', 'post 2', 'post 3'); 

$iterator1 = new ArrayIterator($articles); 
$iterator2 = new ArrayIterator($posts); 

$multiIterator = new MultipleIterator(); 
$multiIterator->attachIterator($iterator1); 
$multiIterator->attachIterator($iterator2); 

foreach($multiIterator as $combinedArray){ 
    echo $combinedArray[0] . "<br/>\n"; 
    echo $combinedArray[1] . "<br/>\n"; 
} 

輸出: -

article 1 
post 1 
article 2 
post 2 
article 3 
post 3