gpt4 book ai didi

php - 从 SQL 数据库填充多个列表

转载 作者:行者123 更新时间:2023-12-01 00:17:21 25 4
gpt4 key购买 nike

这里已经有类似的问题,但没有一个很适合我的情况。基本上,我想用 MYSQL 数据库中的相同数据填充数量可变的选择菜单。这样做的原因是我希望用户能够添加行以同时提交多个选择。

为了避免为选择菜单的每个实例执行登录 --> 读取 MYSQL,我创建了一个数组,用于在必要时填充菜单。问题是它仅适用于第一个实例;换句话说,PHP 在第一次读取后以某种方式删除存储在数组中的值。

如果这个问题很基础,我很抱歉,我是 PHP 的新手。

到目前为止,这是我的代码:

访问 MYSQL 并定义变量“result”:

<?php 
$servername = "localhost";
$username = "sonch_PUBLIC";
$password = "sonch_PUBLIC";
$dbname = "sonch_MAIN";
date_default_timezone_set('Europe/Zurich');
$date = date('Y-m-d');

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

//START SEARCH BY VENUE
$sql = "SELECT Name, City FROM Venue ORDER BY City";
$result = $conn->query($sql);

$conn->close();
?>

填充第一个实例:

<select style="width:138px; text-align:center">
<option selected>CHOOSE VENUE</option>';
<?php
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<option>" . $row["Name"] . " - " . $row["City"] . "</option>";
}
}
?>
</select>

到目前为止一切顺利....但是当我想用相同的代码填充后续菜单时,即重复:

<select style="width:138px; text-align:center">
<option selected>CHOOSE VENUE</option>';
<?php
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<option>" . $row["Name"] . " - " . $row["City"] . "</option>";
}
}
?>
</select>

...它们是空的。

建议?

最佳答案

您的第一个 while 循环:

        while($row = $result->fetch_assoc()) {
echo "<option>" . $row["Name"] . " - " . $row["City"] . "</option>";
}

从结果集中读取所有数据。所以当你做第二个时,就没有什么可读的了。要解决此问题,您需要使用 mysqli::data_seek 重置数据指针.所以在随后的 while 循环之前,添加这一行:

 $result->data_seek(0);

data_seek 将结果集读取指针移动到指定的行号。在本例中,我们将其移回第 0 行,或结果集的开头。完成后,您可以再次完整读取结果集

关于php - 从 SQL 数据库填充多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53445870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com