我想创建一个表,第一列包含数据库中的名称,第二列包含数组中的值。 这就是我所拥有的
<table>
<tr>
<?php $arr=array(3,5,2,4,1);
$name= mysql_query("SELECT name FROM table")
foreach ($arr as $rs){
while($n=mysql_fetch_array($name)){ ?>
<td><?=$n['name']?></td>
<td><?=$rs?></td>
</tr>
<?php } } ?>
</table>
我需要像
这样的输出name_a 3
name_b 5
name_c 2
name_d 4
name_e 1
提前谢谢。
答案 0 :(得分:2)
您不需要foreach
循环。只需在while()
循环中使用array_shift()
函数来获取每个数组元素。所以你的代码应该是这样的:
<table>
<tr>
<?php
$arr=array(3,5,2,4,1);
$name= mysql_query("SELECT name FROM table")
while($n=mysql_fetch_array($name)){
$rs = array_shift($arr);
?>
<td><?=$n['name']?></td>
<td><?=$rs?></td>
</tr>
<?php
}
?>
</table>
此外,只有当表中的行数等于数组中的元素数时,您的业务逻辑工作才会。如果情况并非如此,那么您需要在查询中使用LIMIT
子句。
旁注:不要使用mysql_*
函数,从PHP 5.5开始不推荐使用它们,并且在PHP 7.0中完全删除它们。请改用mysqli
或pdo
。 And this is why you shouldn't use mysql_*
functions。