2016-04-22 53 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裏面 –

相關問題