2015-01-03 92 views
-1

我想學習PHP,所以我通過創建腳本和構建站點來完成此任務。PHP MySQL錯誤代碼

這是我的代碼來檢查服務器ID。

<?php 
    include('configuration/mysql.php'); 
    include('php/functions.php'); 
?> 
<?php 
    function canList($email1, $id) { 
     $query=mysql_query("SELECT * FROM Panel_Servers WHERE ID = '$id'") or die (mysql_error()); 
     while($sv=mysql_fetch_array($query)) 
     { 
      if($id == $sv['ID']) { 
       echo 'working.'; 
      } 
     } 
    } 
    canList("[email protected]", "2740"); 
?> 

SQL連接很好,正在工作。查詢也在工作,在phpmyadmin sql(無變量)上進行測試,ID列等於2740。

我嘗試了很多選擇,但它仍然不起作用。

+0

是你的id列真的大寫? @Khushboo不,它有te函數內的回顯 –

+0

根據你的腳本,如果($ id == $ sv ['ID']){echo'working。'; } ......當條件不符合時,你的腳本會默默退出 – DLastCodeBender

+0

加入退出;當你的條件匹配時。 – Khushboo

回答

0

我複製你的代碼,我的本地機器上運行,它的工作就像一個魅力,現在我在這裏貼上我的工作代碼:

<?php 

function canList($email1, $id) { 
    $con=mysqli_connect("localhost","root","","jtw"); 
    $query=mysqli_query($con,"SELECT * FROM sample WHERE id = '".$id."'") or die (mysql_error()); 
    while($sv=mysqli_fetch_array($query)) 
    { 
     if($id == $sv['id']) { 
      echo 'working.'; 
      echo $id; 
     } 
    } 
} 
canList("[email protected]", "1"); 
?> 

我已經改變了你的id列小寫。

1

我想你只需要告訴mysql_fetch_array你想要返回什麼類型的數據。默認情況下,它會返回一個帶數字鍵的數組,因此您的$sv陣列數據應該在$sv[0]之內。只需將MYSQL_ASSOC可選的第二個參數傳入mysql_fetch_array就可以了;現在

<?php 
    include('configuration/mysql.php'); 
    include('php/functions.php'); 
?> 
<?php 
    function canList($email1, $id) { 
     $query=mysql_query("SELECT * FROM Panel_Servers WHERE ID = '$id'") or die (mysql_error()); 
     while($sv=mysql_fetch_array($query, MYSQL_ASSOC)) 
     { 
      if($id == $sv['ID']) { 
       echo 'working.'; 
      } 
     } 
    } 
    canList("[email protected]", "2740"); 
?> 

您的數組索引應該是ID鍵,如$sv['ID']