[英]PHP Limit rows returned by MySQL and do something if last row returned
[英]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.