这是我后台页面的一部分代码。(是一个供用户编辑/修改的edit.php页面)
//第一个查询从用户表
$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个select box//下面是我可以构建的第一个盒子$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条件,这意味着你检查每个记录,如果猫id与行相同,所以你需要循环。
-
另一方面,如果出于某种原因你想跳过一些记录,你可以使用mysql的seek函数开始从所需的记录中抓取。
for($i=0;$i<99999;$i++) (9999*9999); echo 'This time the cost of this loop was:',(microtime()-$start),' seconds.';
?>