在</select>的更新中使用<select>

时间:2013-02-08 16:25:44

标签: php pdo

我有一个包含两个字段的编辑表单:名称和类别。类别字段作为数字存储在数据库中。我想将每个数字(总共3个)与编辑表单中的字符串相关联,并显示数据库中记录的类别,然后显示另一个。

<form>
<input type="text" name="name" value="<?php echo $result->name; ?>">

<select name="categoria">
    <option value="<?php echo $result->category; ?>">books</option>
    <option value="2">cds</option>
    <option value="3">dvds</option>
</select>

</form>

1 个答案:

答案 0 :(得分:0)

我不确定那里是否有问题,但我想我知道你要做什么。我不知道你的表结构是什么样的,所以这只是一个例子。

$sql = mysqli_query("SELECT * FROM categories ORDER BY category_title ASC");

while($row = mysqli_fetch_array($sql))
{
    $num = $row['category_number'];
    $val = $row['category_title'];

    echo '<option value="' . $num . '">' . $val . '</option>';
}

这将为您提供select元素的所有选项,将其值设置为数据库中的数字,并显示查看器的类别名称。

编辑:

这是使用MySQLi类,这将节省您一些时间。但是,为此特定函数构建类没有多大用处。它太短了。

$mysqli = new MySQLi($host, $user, $pass, $database);

$sql = $mysqli->query("SELECT * FROM products ORDER BY category_name ASC");

while($row = $sql->fetch_array())
{
    $num = $row['category'];
    $val = $row['category_title'];

    echo '<option value="' . $num . '">' . $val . '</option>';
}

编辑2:

只需使用while()循环,而不是... while()。它是这样的:

$dbh = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASS);

$sth = $dbh->query("SELECT * FROM products ORDER BY category_name ASC");

while($row = $sth->fetch(PDO::FETCH_ASSOC))
{
    $num = $row['category'];
    $val = $row['categoty_name'];

    echo '<option value="' . $num . '">' . $val . '</option>';
}