我想显示我的tb_app的所有名称,这些名称目前已存储(4)名称并显示在我的文本框中...任何人都可以帮助我使我的代码工作吗?我只是编程的初学者。
当前代码:
<html>
<head>
<title>test</title>
</head>
<body>
<?php
include('include/connect.php');
$sql = "SELECT name FROM tb_app";
while($rows = mysql_fetch_array($sql)){
$name = $rows['name'];
}
?>
Name List: <br />
<input type="text" value="<?php echo $name[0] ?>" /> <br />
<input type="text" value="<?php echo $name[1] ?>" /> <br />
<input type="text" value="<?php echo $name[2] ?>" /> <br />
<input type="text" value="<?php echo $name[3] ?>" /> <br />
</body>
</html>
答案 0 :(得分:2)
现在你在循环的每次迭代中覆盖$name
变量。您希望将$name
视为数组,并在每次迭代中向数组添加元素。
改变这个:
$name = $rows['name'];
对此:
$name[] = $rows['name'];
您当然可以直接在while
循环内回显您的文本框,并跳过$name
变量。但是,将数据库或业务逻辑与您(某种程度上)正在执行的显示逻辑分离是一种很好的做法。事实上,我建议您在打开<html>
标记之前将PHP代码移到页面顶部,并限制与HTML混合使用的PHP数量。
答案 1 :(得分:0)
一种更有活力的方式(即你有少于或多于4个名字):
<html>
<head>
<title>test</title>
</head>
<body>
Name List: <br />
<?php
include('include/connect.php');
$sql = "SELECT name FROM tb_app";
while($rows = mysql_fetch_array($sql)){
echo '<input type="text" value="'. $rows['name'] .'" /> <br />';
}
?>
</body>
</html>
答案 2 :(得分:0)
你可以走得更远:
将name
更改为names
:
while($rows = mysql_fetch_array($sql)){
$names[] = $rows['name'];
}
然后
名单:
<?php foreach ($names as $name): ?>
<input type="text" value="<?php echo $name ?>" /> <br />
<?php endforeach; ?>