在获取行之间添加

时间:2016-02-01 02:39:26

标签: mysql fetch

我想从我的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>";
   }
}

1 个答案:

答案 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>";
   }
}

此外,为了使代码更快一些,请考虑使用elseifelse if而不是多个if语句。您可能还想查看PHP switch语句以获取替代方法。

另外,你不应该做两件事:

1)不要使用mysql函数,要么使用mysqli,要么使用PDO函数。 PHP中的mysql函数已弃用,不应再使用。

2)请勿使用<br>添加间距。此外,块级元素(如div)不能出现在内联元素(如强)中。对于这两个使用CSS而不是。我已修改此内容以供您使用内联CSS,但最终应将其放在外部CSS文件中。