我正在构建一个小型库存系统,希望有一个下拉菜单供用户选择零件,然后输入零件的数量。我将用mySQL数据库中的元素填充下拉菜单。我熟悉mySQL,不太熟悉php和html,但我用java编程,所以我有一些编程经验。不管怎样,这是代码,我目前的问题是其他项目没有出现在下拉菜单中。
关于代码的任何其他建议都会很棒,谢谢!
代码:
<html>
<body>
<form action="index.php" method="post">
<select>
<!-- php code to get all items -->
<?php
$conn = mysqli_connect("localhost", "root", "root", "inventory");
if(mysqli_connect_errno($conn)) {
echo "ERROR: " . mysqli_connect_error();
}
$sql = "SELECT * FROM item_names";
echo $sql;
while($row = mysql_fetch_array($sql)) {
echo '<option value="$row[name]"> $row[name] </option>';
}
?>
<option value="laptop"> Laptop </option>
<option value="ipad"> iPad </option>
</select>
Amount: <input type="text" name="amount" size="5" />
<input type="submit" value="Enter" />
</form>
<form action="new.php" method="post">
Name: <input type="text" name="name" />
<input type="submit" value="New..." />
</form>
<br><br><br><br><br>
<h3> Inventory: </h3>
<table border="1">
<!-- php code to fill table -->
<tr>
<td>(0, 0)</td>
<tr>
<tr>
<td>(1, 0)</td>
<tr>
</table>
</body>
- 混合
mysql
和mysqli
功能 - 无需
echo $sql
- 使用单引号构建的字符串不会被解析,并且不会发现该字符串中的变量。使用带有正确转义或串联的双引号
- 访问不带引号的数组键(
$row[name]
)是一种糟糕的做法
<?php
$conn = mysqli_connect("localhost", "root", "root", "inventory");
if(mysqli_connect_errno($conn)) {
echo "ERROR: " . mysqli_connect_error();
}
$sql = "SELECT * FROM item_names";
$result=mysqli_query($sql); // not executing this
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$name=$row["name"];
echo '<option value="'.$name.'">'. $name .'</option>';
}
?>
实际上,您没有在sql上运行mysqli_query
,并且尽量不混淆mysql
和mysqli
函数
如果你尝试一下,也许?
echo '<option value="'.$row['name'].'">' .$row['name']. '</option>';
试试这个
<form action="index.php" method="post">
<select>
<!-- php code to get all items -->
<?php
$conn = mysqli_connect("localhost", "root", "root", "inventory");
if(mysqli_connect_errno($conn)) {
echo "ERROR: " . mysqli_connect_error();
}
$sql = "SELECT * FROM item_names";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
echo '<option value="$row[name]"> $row[name] </option>';
}
?>
<option value="laptop"> Laptop </option>
<option value="ipad"> iPad </option>
</select>
Amount: <input type="text" name="amount" size="5" />
<input type="submit" value="Enter" />
</form>
<form action="new.php" method="post">
Name: <input type="text" name="name" />
<input type="submit" value="New..." />
</form>
<br><br><br><br><br>
<h3> Inventory: </h3>
<table border="1">
<!-- php code to fill table -->
<tr>
<td>(0, 0)</td>
<tr>
<tr>
<td>(1, 0)</td>
<tr>
</table>
</body>