您好网络编程硕士。 我有这个代码:
<?PHP
$db_user = 'user';
$db_pass = 'password';
$db_name = 'dbname';
$db_host = 'localhost';
if(mysql_connect($db_host,$db_user,$db_pass)) {
mysql_select_db($db_name);
mysql_query("CREATE TABLE IF NOT EXISTS smsads(id bigint unsigned primary key auto_increment, link varchar(255), fromnum varchar(60))");
$res = mysql_query("SELECT * FROM smsads ORDER BY id DESC LIMIT 36");
while($row = mysql_fetch_object($res)) {
if ($res>=36){
$http_link = $row->link;
$root_link = strpos($http_link, '/');
if ($root_link !== false) {
$before = substr($http_link, 0, $root_link);
}
echo "<div id=\"banner\"><a href=\"http://{$before}\" alt=\"{$before}\" title=\"{$before}\" target=\"_blank\"><img src=\"http://{$http_link}\" /></a></div>";
}
else {
echo $res . "<div id=\"banner\"></div>";
}
}
}
?>
</div>
正如我们所看到的,获取的行数限制为36.如果行小于36,如何显示现有的行,再添加其他内容直到36? 例如,这是一个像素广告的脚本,我想要显示现有的像素(例如,我有20个插入的像素),并将空盒子显示为其他空白的地方(共36个地方 - 已放置20个项目= 16个空位)直到计数达到36个盒子。
正如你所看到的,我试过“If”,“else”,但它总是只显示空盒子(因为我不知道如何告诉它显示结果+空盒子)......
答案 0 :(得分:2)
将所有内容重写为for循环,它也使一切变得更容易理解:
for($cnt = 0; $cnt < 36; $cnt++){
if($row = mysql_fetch_object($res)){
// In here you should have the code for the boxes to be filled.
$http_link = $row->link;
$root_link = strpos($http_link, '/');
if ($root_link !== false) {
$before = substr($http_link, 0, $root_link);
}
echo "<div id=\"banner\"><a href=\"http://{$before}\" alt=\"{$before}\" title=\"{$before}\" target=\"_blank\"><img src=\"http://{$http_link}\" /></a></div>";
}else{
// In here you should have the code for the empty boxes
echo "<div id=\"banner\"></div>";
}
}
这将总是遍历循环36次,那些时候它会找到一行它将打印行,否则它将打印空的横幅标记。
答案 1 :(得分:0)
if (mysql_num_rows($res) >= 36) {
// ...
}
答案 2 :(得分:0)
如果if语句为true,您是否测试了执行的代码?