PHP查找带有图像的项目,并在顶部包含

PHP查找带有图像的项目,并在顶部包含,php,mysql,Php,Mysql,while循环中的前两个if/elseif语句检查新闻项是否存在图像,如果不存在,则跳过它。计数器确保只对顶部的前三个项目执行此操作。目前,这可以正常工作,没有任何错误 我希望前两个if/elseif语句只使用带有图片$row->imagelibid的帖子-因此7天前可能有一个带有图片的新闻故事,所以它在顶部使用它-它被迫查找并使用带有图片的新闻故事。这将意味着这些“选定”故事的日期顺序将是错误的——但这没关系 希望这有意义。。。以及任何我感激的帮助 $site_url = "http://ww

while循环中的前两个if/elseif语句检查新闻项是否存在图像,如果不存在,则跳过它。计数器确保只对顶部的前三个项目执行此操作。目前,这可以正常工作,没有任何错误

我希望前两个if/elseif语句只使用带有图片$row->imagelibid的帖子-因此7天前可能有一个带有图片的新闻故事,所以它在顶部使用它-它被迫查找并使用带有图片的新闻故事。这将意味着这些“选定”故事的日期顺序将是错误的——但这没关系

希望这有意义。。。以及任何我感激的帮助

$site_url = "http://www_#_com";
    $full_site_url = $site_url . "/" . $news_prefix . "news/" . $row->id;
    $news_prefix = "#";
    $adFrequency = 5;
    $ad = 0;
    $i = 0;

    $result = mysql_query( "SELECT news.*, regions.name AS territory FROM news JOIN country ON news.country = country.iso JOIN regions ON regions.id = country.region WHERE news.mobile_app != 0 AND news.hidden = 0 AND news.beef = 1 ORDER BY news.datein DESC LIMIT 20", $db );

    while ( ( $row = mysql_fetch_object( $result ) ) !== false ) {

    $imageid = intval( $row->imagelibid );
    $image_result = mysql_query( "SELECT * FROM imagelib WHERE id = {$imageid}", $db );
    $image_row = mysql_fetch_object( $image_result );
    $image_url = "http://www.#.com/slir/w280/imagelib/" . $image_row->id . "_" . $image_row->filename;

    if ($i <= 0 && !empty($row->imagelibid)) {

    echo '<div class="one-news-featured-article clearfix">';
    echo '<div class="grid_12">';
    echo '<div class="large-featured-image-container"><img src="'.$image_url.'">';  
    echo '<div><h2><a href="item-news.php?id='.$row->id.'">'.$row->title.'</a></h2></div>';
    echo '</div>';
    echo '</div>';
    echo '</div>';

    }

    elseif ($i <= 2 && !empty($row->imagelibid)) {

    echo '<div class="one-news-featured-article clearfix">';
    echo '<div class="grid_6">';    
    echo '<div class="small-featured-image-container"><img src="'.$image_url.'">';  
    echo '<div><h2><a href="item-news.php?id='.$row->id.'">'.$row->title.'</a></h2></div>';
    echo '</div>';
    echo '</div>';
    echo '</div>';

    }

    else {

    // Places ad based of predefined variable frequency
    if ($ad == $adFrequency){

     echo'<div class="one-advertisement-article clearfix">';
     echo'<div class="grid_9 suffix_2"><img src="http://placehold.it/263x75/000000/ffffff"></div>';
     echo'<div class="grid_1"><a class="navigate-right-icon ss-icon" href="#">navigateright</a></div>';
     echo'</div>';

     $ad = 0;
    }

    echo '<div class="one-news-article clearfix">';
    if( $row->imagelibid )
            {
                echo '<div class="grid_4"><a href="#"><img src="'.$image_url.'"></a></div>';        
            }
    else {
                echo '<div class="grid_4"><div class="news-placeholder"><span class="ss-icon">ellipsischat</span></div></div>';
        }

    echo '<div class="grid_7">';
    echo '<h2><a href="item-news.php?id='.$row->id.'">'.$row->title.'</a></h2>';

    $published_date = date('D, d M Y', strtotime($row->datein));
    echo '<p class="published-date">'.$published_date.'</p>';

    echo '<p class="news-snippet">'.$row->snippet.'</p>';
    echo '</div>';
    echo '<div class="grid_1">';
    echo '<div class="news-item-vertical-sep">&nbsp;</div>';
    echo '<p></p>';
    echo '</div>';
    echo '</div>';

    $ad++;

    }

    $i += 1;

    }

p.S我知道mysql_uu是一个不推荐使用的函数,但如果现在可以忽略这一点,那就好了。

只需循环所有结果,如果找到一个图像,将其保存到一个数组中,比如$newsWithImage,如果找不到,则将$newsWithoutImage保存到另一个数组中。 完成后,只需在第一个数组中循环并回显结果,然后取另一个数组

while ( ( $row = mysql_fetch_object( $result ) ) !== false )
{
   if($row->imagelibid)
      $newsWithImage[] = $row;
   else
      $newsWihtoutImage[] = $row;
}

foreach($newsWithImage as $news)
{
  // do your html output with the results 
}

foreach($newsWithoutImage as $news)
{
  // do your html output with results
}

你能发布你的数据库表结构吗?