2017-05-05 18 views
-2

我試圖得到一個PHP腳本,它使生產誤差但是工作「mysqli_error()期望的是1個參數,給出0」mysqli_error()使用可變

目的,期望的是1個參數,0給PHP這個代碼是打印出其工作人員處理給定的輸入員工ID

的誤差似乎是從代碼的下面SNIPPIT衍生訂單的表,但我可能是錯的。當我將$ staff更改爲不同的參數時,它將清除ORDER BY語句。

$sql = "SELECT orderID, orderDate, shippingDate, staffName FROM purchase 
INNER JOIN staff ON purchase.staffID = customer.staffID WHERE staffID = 
'$staff' ORDER BY orderDate"; 

我已經給出了代碼的完整副本低於

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Prac 2 Task 4</title> 
     <link rel="stylesheet" href="styles.css"> 
    </head> 
    <body> 
     <?php 
      $staff = $_GET["staffID"]; 
      $conn = mysqli_connect('localhost', 'somelocation', 'somepassword', 'somedatabase'); 
      if (!$conn){ 
       die("Connection failed: " . mysqli_connect_error()); 
       } 
      $sql = "SELECT orderID, orderDate, shippingDate, staffName FROM purchase INNER JOIN staff ON purchase.staffID = customer.staffID WHERE staffID = '$staff' ORDER BY orderDate"; 
      $results = mysqli_query($conn, $sql) 
       or die ('problem with query' . mysqli_error()); 
     ?> 
     <h1>staff order</h1> 
     <table> 
      <tr> 
       <th>Order ID</th> 
       <th>Order Date</th> 
       <th>Shipping Date</th> 
       <th>Staff member </th> 
      </tr> 
      <?php 
      while ($row = mysqli_fetch_array($results)) { 
      ?> 
      <tr> 
      <td><?php echo $row["orderID"] ?></td> 
      <td><?php echo $row["orderDate"] ?></td> 
      <td><?php echo $row["shippingDate"] ?></td> 
      <td><?php echo $row["staffName"] ?></td> 
      </tr> 
      <?php } 
      mysqli_close($conn); ?> 
     </table> 
    </body> 
</html> 
+0

使用準備好的聲明。 – mickmackusa

+0

@mickmackusa爲什麼?他正在爲這個計劃尋求解決方案,並且你指他改變方式。爲什麼? –

+0

@DavinderKumar我的評論是最佳做法建議,從問題的尋求結果分開,這就是爲什麼我沒有張貼作爲一個答案。他直接在查詢中使用'$ _GET'數據 - 這不是簡單的。 – mickmackusa

回答