繁体   English   中英

MYSQL PHP while循环,如果没有返回给定的行数,请执行某些操作

[英]MYSQL PHP while loop, do something if there aren't a given amount of rows returned

我正在尝试找出执行此类操作的最佳方法。 基本上,我想做的事情(在一个简单的示例中)将是查询数据库并返回3行,但是如果没有3行,比如说有0、1或2,那么我想将其他数据放入丢失行的位置。

假设我的查询返回2行。 然后应该有1个列表元素与其他数据一起返回。

像这样的东西: http : //i42.tinypic.com/30xhi1f.png

$query = mysql_query("SELECT * FROM posts LIMIT 3");
while($row = mysql_fetch_array($query))
{
  print "<li>".$row['post']."</li>";
}
//(this is just to give an idea of what i would likkeee to be able to do
else
{
  print "<li>Add something here</li>";
}

您可以使用mysql_num_rows获得结果集中的项目数。 只需建立差异即可找出“缺失”的项目。

我可以想到三种方式,使用mysql_num_rows获取行计数,使用三个值对数组进行素数处理,然后在循环结果集时将其替换,或者在工作时从三个值开始递减,并在第二个循环中完成计数,像这样:

$result = db_query($query);
$addRows = 3;
while ($row = mysql_fetch_assoc($result){
    $addRows--;
    // do your stuff
}
while ($addRows-- > 0) {
    // do your replacement stuff
}

如果找不到行,请相应地添加其他信息。

$query = mysql_query("SELECT * FROM posts");
for($i=0;$i<3;$i++){
    $row = mysql_fetch_array($query);
    if($row){
        print "<li>".$row['post']."</li>";
    }
    //(this is just to give an idea of what i would likkeee to be able to do
    else{
        print "<li>Add something here</li>";
    }
}

假设将行存储在数组中或类似的数组中,则可以简单地使用while循环进行填充(取决于生成其他数据的方式):

while (count($resultList) < 3) {
    // add another row
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM