我有一个包含两个字段的编辑表单:名称和类别。类别字段作为数字存储在数据库中。我想将每个数字(总共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>
答案 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>';
}