php - 仅为第一次数据库调用返回数据

标签 php html

我用相同的查询填充了 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_oncerequire_once

require_once()include_once() 语句可用于在另一个文件中包含一个 php 文件,当您可能需要多次包含被调用的文件时。如果发现该文件已经被包含,调用脚本将忽略进一步的包含。

关于php - 仅为第一次数据库调用返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36784161/

相关文章:

javascript - 使用鼠标和触摸水平滚动 div

html - 使用 css 自定义文件按钮

html - 仅使用 CSS 的渐变按钮

javascript - 根据屏幕分辨率加载不同的视频(html5)质量

php - 不使用模板引擎将逻辑与表示分离

php - 密码安全;这样安全吗?

php - mysql_close() 是必要的吗?

html - CSS Position 图片比容器大

php - 如何使用PHP或regex提取图像名称?

php - 使用特定ID对mysql进行排名