mysql结果检查,而mysql select是for循环内部

时间:2015-01-22 03:22:24

标签: php mysql arrays loops

晚上,

我有一段代码:

for ($i=0; $i < $c; $i++){
    $result = mysql_query("SELECT ad_id,title FROM `ads` WHERE `ad_id`='".$new[$i]."' LIMIT 10");
    if(mysql_num_rows($result) > 0){
        while($row = mysql_fetch_array($result)){
            if(($c > 3) && ($i < 2)){
                echo '
                <div class="pins best">
                     <div class="holder">

                         '.$row['title'].'
                     </div>
                </div>';
            } else {
                echo '
                <div class="pins">
                     <div class="holder">
                         '.$row['title'].'
                     </div>
                </div>';
            }
        }
    } else {
        echo "No results";
    }
}

现在我正在做的是检查我id数组中$new iddbdb对应的if。{/ p>

如果没有匹配else条记录的结果,我无法完成的是向用户输出一些消息。我尝试在db语句for语句之后撰写,但它不起作用,因为此{{1}}选项位于{{1}}循环中。

有什么建议吗?

编辑:我在我的代码中添加了else语句,因为每个人都在暗示我已经尝试过的内容,以及问题出在哪里。

4 个答案:

答案 0 :(得分:0)

你试过吗

if(mysql_num_rows($result) > 0){
...
}
else {
    //message here 
}

答案 1 :(得分:0)

你的代码是99%:

    for ($i=0; $i < $c; $i++) { 
        $result = mysql_query("SELECT ad_id,title FROM `ads` WHERE `ad_id`='".$new[$i]."' LIMIT 10");
        if(mysql_num_rows($result) > 0){
            while($row = mysql_fetch_array($result)){
                if(($c > 3) && ($i < 2)){
                     echo '
                            <div class="pins best">
                                 <div class="holder">

                                     '.$row['title'].'
                                 </div>
                            </div>
                        ';
                } else {
                echo '
                        <div class="pins">
                             <div class="holder">

                                 '.$row['title'].'
                             </div>
                        </div>

                    ';

                }

            }
        }
        else
        {
            echo 'No results found';
        }

    }

while循环永远不会被执行。

答案 2 :(得分:0)

您可以收集数组$failedId中失败的数据,之后您可以对该集合执行某些操作并迭代$new数组以生成反馈。

$failedId = array();

for ($i=0; $i < $c; $i++){
    $result = mysql_query("SELECT ad_id,title FROM `ads` WHERE `ad_id`='".$new[$i]."' LIMIT 10");
    if(mysql_num_rows($result) > 0){
        while($row = mysql_fetch_array($result)){
            if(($c > 3) && ($i < 2)){
                echo '
                <div class="pins best">
                     <div class="holder">

                         '.$row['title'].'
                     </div>
                </div>';
            } else {
                echo '
                <div class="pins">
                     <div class="holder">
                         '.$row['title'].'
                     </div>
                </div>';
            }
        }
    } else {
        $failedId[] = $i;
    }
}

答案 3 :(得分:0)

我自己整理好了。如果有人感兴趣,在我创建一个与数据库中的搜索词匹配的id的数组后,我只检查数组或结果是否为空(这意味着没有找到匹配项),然后打印出该消息,这检查在上面给出的代码之前完成。 感谢那些花时间帮助我的人。