2016-04-22 52 views
2

我正在使用相同的查询填充4个选择,但只有第一个select会被填充,而后面的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(); 
} 
?> 

回答

0

要重新定义在phpquery.php任何函数或类。当您尝试重新定义这样的函数或类时,PHP会中止。考虑将该文件包含phpquery.php一次,然后运行您的功能get_items。您可以使用include_oncerequire_once

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

+0

包含语句是否可以添加到.php文件中的任何位置,或者是否必须直接在调用过程之上使用? –

+0

您的函数'get_items'在'phpquery.php'里面吗? –

+0

是的,我的函数get_items在phpquery.php里面 –

相关问题