PHP列表菜单框-循环的最佳方式?

PHP列表菜单框-循环的最佳方式?,php,menu,selected,Php,Menu,Selected,这是我后台页面代码的一部分。(是供用户编辑/修改的edit.php页面) //从用户表中获取CAT的第一个查询 $query = "select * from user where name='".$_SESSION['username']."' order by id ASC limit 1"; $result=mysql_query($query); if (mysql_num_rows($result)) { while($row=mysql_fetch_array($result)){

这是我后台页面代码的一部分。(是供用户编辑/修改的edit.php页面)

//从用户表中获取CAT的第一个查询

$query = "select * from user where name='".$_SESSION['username']."' order by id ASC  limit 1";
$result=mysql_query($query);
if (mysql_num_rows($result)) {
while($row=mysql_fetch_array($result)){


$cat1 = $row['cat1'];
$cat2 = $row['cat2'];
$cat3 = $row['cat3'];
$cat4 = $row['cat4'];
$cat5 = $row['cat5'];
$cat6 = $row['cat6'];
$cat7 = $row['cat7'];
$cat8 = $row['cat8'];
$cat9 = $row['cat9'];
$cat10 = $row['cat10'];

}
}
//现在我想根据用户表$cats构建10个选择框

//下面是我可以构建的第一个框$cat1

//有没有一种方法,我可以产生这10个选择框,而不必作出10个周期的贝娄代码

<select name="theme" id="theme">
<?php
$q1 = 'SELECT * FROM cats ORDER BY title ASC';
$r1 = mysql_query($q1);
while( $row = mysql_fetch_array($r1)) {

if ( $cat1 == $row['id'] ) { 

print "<option class=\"cssoption\" selected=\"selected\" value=\"".$row['id']."\">".htmlentities($row['title'])."</option>";

}

else {

print "<option class=\"cssoption\" value=\"".$row['id']."\">".htmlentities($row['title'])."</option>";

}


}
?>
</select>

我不是一个程序员,所以这可能不是有效的代码

希望有人能在这里帮助我,并理解我正在尝试做什么

非常感谢。

  • 代码很好。这10个周期,正如你所说,几乎是零成本

  • 这是我们通常的做法,我们按顺序一个接一个地获取记录

  • 此外,要求不执行10个循环是没有意义的,因为您同时应用了if-else条件,这意味着您要检查每条记录,如果cat id与行相同,那么您需要循环

  • 另一方面,如果出于某种原因希望跳过某些记录,可以使用mysql seek函数开始从所需的记录中提取

    $i=0;$i的


你好,梅尔西。我真的很担心10次循环的成本。非常感谢!
for($i=0;$i<99999;$i++)
    (9999*9999);

echo 'This time the cost of this loop was:',(microtime()-$start),' seconds.';