我用相同的查询填充了 4 个选择,但只有第一个选择被填充,而后续的则没有。事实上,一旦它到达第二个 select page_load() 就会停止。
问题:
1) 什么导致 page_load 停止?
2) 有没有一种方法可以重用代码,这样我就不必进行多次数据库调用来返回相同的数据?
这是我的语法:
<div id="OrderInfo" runat="server">
<table id="orderinginfo">
<tr>
<td>
<label for="labelselect">Choose an Item</label>
<select>
<option value="null" selected="selected"></option>
<?php
include 'phpquery.php';
$sql = "Select item from items";
echo get_items($sql);
?>
</select>
</td>
</tr>
<tr>
<td>
<label for="labelselect1">Choose an Item:</label>
<select>
<option value="null" selected="selected"></option>
<?php
include 'phpquery.php';
$sql = "Select item from items";
echo get_items($sql);
?>
</select>
</td>
</tr>
</table>
</div>
<?php
function get_items($sql) {
$servername = "localhost";
$username = "user";
$password = "pass";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc()) { echo "<option value=".$row['item'].">".$row['item']."</option><br>"; }
}
else echo "<option value='null'>default</option>";
$conn->close();
}
?>
最佳答案
您正在重新定义 phpquery.php
中的任何函数或类。当您尝试重新定义此类函数或类时,PHP 会中止。考虑一次包含该文件 phpquery.php
,然后运行您的函数 get_items
。您可以使用 include_once
或 require_once
。
require_once()
和 include_once()
语句可用于在另一个文件中包含一个 php 文件,当您可能需要多次包含被调用的文件时。如果发现该文件已经被包含,调用脚本将忽略进一步的包含。
关于php - 仅为第一次数据库调用返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36784161/