1
$queryGetTop = ("SELECT id,name,address,port,vote,isspon FROM servers ORDER BY vote ASC LIMIT 10");
$actionGetTop = mysql_query($queryGetTop);
while ($rowGetTop = mysql_fetch_array($actionGetTop)) {
    $countGetTopname[] = $rowGetTop['name'];
    $countGetTopip[] = $rowGetTop['address'];
    $countGetTopvotes[] = $rowGetTop['vote'];
    $countGetTopspon[] = $rowGetTop['isspon'];
    $countGetTopport[] = $rowGetTop['port'];
    $countGetTopid[] = $rowGetTop['id'];
}

$length = count($countGetTopname);



for ($i = 0; $i > $length; $i++) {
    echo $i;

    /* echo"

      <tbody>
      <tr>
      <td><span "; if($countGetTopspon[$i] == "1"){echo "class=\"label label-important\">Sponsored</span>";}echo $countGetTopname[$i]."</td>
      <td>". $countGetTopip[$i] .":". $countGetTopport[$i] ."</td>
      <td>". $countGetTopvotes[$i] ."</td>
      </tr>
      </tbody>
      "; */
}

我做了一些调试,我的 MySQL 数组进入了数组。所以我在 for 循环中回显了 $i 并且没有打印任何内容,所以 for 循环是问题所在。我不确定我做错了什么,循环没有打印任何错误,表格只是没有被打印(当它不在评论中时)。

4

3 回答 3

5

for(){}将循环更改为:

for($i = 0; $i < $length; $i++ ){
  // execute this code
 }

该部分$i < $length;告诉php:while$length小于$i(首先设置为零,)保持增量或(通过循环重新迭代)1,这意味着..在$i增加足够的次数之后,如果它达到等于脚本的编号$length应该停止。

于 2013-05-17T12:28:44.627 回答
0

我希望问题是

for ($i=0; $i > $length; $i++){

我认为这将是

for ($i=0; $i<$length; $i++){

** 当您正在制作$i=0并尝试检查是否$length小于时$i

希望能帮助到你

于 2013-05-17T12:34:26.713 回答
0

我不太确定你为什么要进行两个 for 循环。这是无望的低效。这是我的做法。您确定它无论如何都会遍历所有内容。我也认为你有一个错误,所以我建议修复它。从中获取您想要的东西,但这比您尝试的要干净得多。此外,如果其他人要查看您的代码,将内容保存在变量中而不是不断地回显会很有帮助。

$queryGetTop = ("SELECT id,name,address,port,vote,isspon FROM servers ORDER BY vote ASC LIMIT 10");
$actionGetTop = mysql_query($queryGetTop);
$str = '';
while($rowGetTop = mysql_fetch_array($actionGetTop)){
    $str .= '<tbody>';
    $str .= '<tr>';
    $str .= '<td>';
    if ($rowGetTop['isspon'] == "1") {
        $str .= '<span class="label label-important">Sponsored</span>';
    }
    $str .= $rowGetTop['name'];
    $str .= '</td><td>';
    $str .= $rowGetTop['address'] .':'. $rowGetTop['port'];
    $str .= '</td><td>';
    $str .= $rowGetTop['vote'];
    $str .= '</td></tr></tbody>';
}

echo $str;
于 2013-05-17T12:37:16.013 回答