在php中的多个文本框中显示数据

时间:2014-01-27 14:52:48

标签: php html

我想显示我的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>

3 个答案:

答案 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; ?>