2013-07-03 91 views
-3

我無法在PHP中顯示特定記錄。這是我的代碼:如何使用PHP顯示來自我的MySQL數據庫的記錄?

<?php 

session_start(); 
$name = $_SESSION['MM_Username']; 
mysql_connect("localhost","abc","sar"); 
mysql_select_db("abc"); 
$query = mysql_query("select * from employee WHERE username = '$name'"); 

while($row = mysql_fetch_row($query)); 
{ 
    echo $row['employee_id']; 
} 

?> 

這不顯示任何內容。我究竟做錯了什麼?

+3

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

+0

試試'print_r($ row);'看看那個變量是什麼 – Jakolcz

+0

那你的錯誤處理在哪裏? [mysql_error()](http://php.net/manual/en/function.mysql-error.php) – Anigel

回答

0

你甚至調試過你的工作嗎? $ _SESSION ['MM_Username'];包含什麼?試試print_r($ _ SESSION);確保;確定。

您也可以只回顯您的查詢並直接在您的數據庫上進行測試,以確保有任何預期結果顯示。

如果你這樣做,它仍然無法正常工作:請提供更多信息。

+0

我已經檢查過了...... print_r($ _ SESSION)給出了正確的用戶名和組 – user2546670

+0

正如我所說;添加額外的信息,因爲我們無法看到您的預期結果(來自數據庫),MM_Username中的當前信息是什麼。現在可能會出現如此多的錯誤:你的MySQL語句可能是無效的,因爲你不是逃避特殊字符,MySQL字段可能區分大小寫,你忘了考慮,我不知道。給我們一些數據來處理。 –

+0

@BjornSchijff,沒有額外的信息是必要的。見vinodadhikary的答案。 – Mischa

0
<?php 
session_start(); 
$name=$_SESSION['MM_Username']; 
mysql_connect("localhost","abc","sar"); 
mysql_select_db("abc"); 
$query = "select * from employee WHERE username = '$name';"; 
$result = mysql_query($query)or die(mysql_error());  
while($row = mysql_fetch_assoc($result)); 
{ 
echo $row['employee_id']; 
} 
?> 

或類似的東西

+0

不要只是發佈代碼。請解釋什麼是問題。 – Mischa

0

首先啓用錯誤報告:

ini_set('display_errors',1); 
ini_set('display_startup_errors',1); 
error_reporting(-1); 

然後按照下面的代碼:

<?php 
session_start(); 
$name = $_SESSION['MM_Username']; 

mysql_connect("localhost","abc","sar") or die("No Connection"); //Add or die() to record any error if connection is failed 
mysql_select_db("abc") or die("can't select"); 

$query = mysql_query("select * from `employee` WHERE username = '".$name."'") or die("Wrong query"); //makesure table name with backtick eg: `tablename` 

while($row = mysql_fetch_array($query)); //also can use : mysql_fetch_assoc($query) 
{ 
    echo $row['employee_id']; //print output 
} 
?> 
  1. 啓用錯誤報告
  2. 添加or die()以檢查是否失敗
  3. 始終使用表名的反引號。爲什麼?檢查here
  4. 嘗試使用mysql_fetch_array($query)mysql_fetch_assoc($query)
  5. 請不要在日後使用mysql_*。爲什麼?檢查here
+0

做了所有的..沒有結果...頁面仍然是空白 – user2546670

+0

嘗試查看頁面源代碼..也嘗試清除瀏覽器緩存,如果你可以..並重新啓動xampp(如果你使用xampp) – rusly

6

您正在使用mysql_fetch_row返回數值數組。例如,您應該使用mysql_fetch_assoc

while($row = mysql_fetch_assoc($query)) 
{ 
    echo $row['employee_id']; 
} 

請通過雙方的文檔閱讀:

http://php.net/manual/en/function.mysql-fetch-row.php

http://www.php.net/manual/en/function.mysql-fetch-assoc.php

注意:請不要忽視警告。開始使用PDO或mysqli。

+0

我做到了..甚至使用mysqli ..但仍然沒有progress.id錯誤handeling它也不會顯示任何錯誤 – user2546670

+0

是'while($ row = mysqli_fetch_assoc($ query))中的分號;'故意?您將不會看到使用該分號的語法錯誤,但while塊不會以該分號執行。請刪除它並嘗試一下。 – vee

0

您還可以使用mysql_fetch_array($查詢,MYSQL_ASSOC)但請使用mysqli_fetch_array($結果,MYSQL_ASSOC)因爲mysql_已被棄用。

而且在未來,如果你有一些問題,你的代碼,請致電funcion 的var_dump()用於調試的原因,或者你可以在你的php.ini文件中設置了XDebug和你的環境的工具連接(如NetBeans的或類似的東西)。

如果您對NetBeans和xdebug感興趣,請訪問:link

相關問題