我想从我的mysql中获取4行,并在每行后添加不同的文本
$rel=mysql_query("SELECT * FROM b_topics WHERE MATCH (subject) AGAINST('$title') LIMIT 4");
if(mysql_num_rows($rel)<0) {
echo ""
}
else {
echo" <br><strong><div align='center'>Related Topics</div <br>";
while($rel2=mysql_fetch_assoc($rel)) {
$gnum=mysql_num_rows($rel2);
if($gnum==1) {
echo" yes"
}
if($gnum==2) {
echo" no yes"
}
if($gnum==3) {
echo"yes yes"
}
if($gnum==4) {
echo" wmjayes";
}
$reltitle=$rel2["subject"];
$relid=$rel2["id"];
echo" <a href='showtopic.php?id= $relid'>$reltitle>$gnum</a><br>";
}
}
答案 0 :(得分:1)
由于mysql_fetch_assoc只包含一行,因此计算行数对您不起作用。另外,mysql_num_rows告诉你在查询结果中返回了多少行($ rel),它不会告诉你你在哪一行。
而是考虑使用计数器变量:
$rel=mysql_query("SELECT * FROM b_topics WHERE MATCH (subject) AGAINST('$title') LIMIT 4");
if(mysql_num_rows($rel)<0) {
echo ""
}
else {
$counter = 0;
echo "<div style='text-align: center; font-weight: bold; margin: 10px'>Related Topics</div>";
while($rel2=mysql_fetch_assoc($rel)) {
$counter++;
if($counter==1)
echo" yes";
elseif($counter==2)
echo "no yes";
elseif($counter==3)
echo "yes yes";
elseif($counter==4)
echo" wmjayes";
$reltitle=$rel2["subject"];
$relid=$rel2["id"];
echo" <a href='showtopic.php?id= $relid'>$reltitle>$counter</a><br>";
}
}
此外,为了使代码更快一些,请考虑使用elseif
或else if
而不是多个if
语句。您可能还想查看PHP switch
语句以获取替代方法。
另外,你不应该做两件事:
1)不要使用mysql函数,要么使用mysqli,要么使用PDO函数。 PHP中的mysql函数已弃用,不应再使用。
2)请勿使用<br>
添加间距。此外,块级元素(如div)不能出现在内联元素(如强)中。对于这两个使用CSS而不是。我已修改此内容以供您使用内联CSS,但最终应将其放在外部CSS文件中。