2012-02-15 183 views
1

我有我的網站下面的PHP代碼:顯示MySQL查詢結果的Web頁

$query="SELECT lastname FROM user"; 
$result=mysql_query($query); 

我想告訴我的網頁上的字段的名稱是lastname,而user是的名稱表本身。我的網站的

的HTML體是:

Welcome <?php echo $_SESSION['$result']; ?>. 

這不是工作,有人可以幫助我。

回答

2

$result將只包含資源處理程序。你用它來讀取行:

<?php  
$query = "SELECT lastname FROM user"; 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($result); 
?> 
Welcome <?php echo $row['lastname'] ?> 
+0

謝謝,但它似乎並沒有工作:s – Jacob 2012-02-15 23:35:57

+0

「不起作用」以什麼方式?錯誤訊息?錯誤的輸出?輸出太多了? @sarnold歡迎,然後在它旁邊沒有任何東西。沒有錯誤 – sarnold 2012-02-15 23:45:09

0

你會做:

<?php 
$query = "SELECT lastname FROM user"; 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($query); 
?> 
Welcome <?php echo $row['lastname']; ?>. 

數組$row將包含從選定行的所有值。

1

$ result是一個「資源」,包含查詢結果。不過,你可能想要的是遍歷所有的結果(因爲查詢將返回每一行的姓氏在「用戶」)

$query="SELECT lastname FROM user"; 
$result=mysql_query($query); 


while (($row = mysql_fetch_array($result)) !== FALSE) { 
    echo "The lastname for this row is " . $row['lastname'] . "<br />"; 
} 

你也應該看看mysql_fetch_assoc

+0

+1確定實際上有迴應 – DaOgre 2012-02-15 23:36:24

+0

@DaOgre我將如何迴應此結果 歡迎<?PHP .......? – Jacob 2012-02-16 00:36:54

+0

聽起來就像你的MySQL連接有問題。你確定你的數據庫設置正確嗎?試試'$ query =「SELECT * FROM user」; $ result = mysql_query($ query); $ row = mysql_fetch_assoc($ result); ' – DaOgre 2012-02-16 18:04:34

1

有幾個事情在這裏失蹤:

  1. 查詢從表中,不只是一個選擇所有lastname的。你可能需要這樣的查詢(假設$ _SESSION [「用戶名」]則是保存自己的用戶名):

    $query="SELECT lastname FROM user WHERE username = " . $_SESSION['username'] . ";"; 
    
  2. 的代碼實際上不取結果集。它只是運行查詢。您需要運行mysql_fetch_assoc()來獲得結果集的第一行:

    $row = mysql_fetch_assoc($result); 
    
  3. 你永遠設置$_SESSION['$result']。你應該設定一個變量,像這樣:

    $_SESSION['lastname'] = $row['lastname']; 
    

    和回聲它像這樣:

    Welcome <?php echo $_SESSION['lastname']; ?>. 
    

全部放在一起:

<?php 
$query="SELECT lastname FROM user WHERE username = " . $_SESSION['username'] . ";"; 
$result=mysql_query($query); 
$row = mysql_fetch_assoc($result); 
$_SESSION['lastname'] = $row['lastname']; 
?> 
<html> 
<head> 
    <title>My page</title> 
</head> 
<body> 
    Welcome <?php echo $_SESSION['lastname']; ?>. 
</body> 
</html> 
+0

我輸入了上面的代碼,但它只是在它旁邊沒有任何東西 – Jacob 2012-02-15 23:44:43

+2

不要忘了$ _SESSION ['username']'可能是SQL注入攻擊的一個向量。 – sarnold 2012-02-15 23:46:05

+1

@sarnold抱歉,但這是什麼意思? – Jacob 2012-02-15 23:47:36

0

的mysql_query會返回一個資源,從而顯示它不是正確的做法。 你就能更好地運用:

while($row=mysql_fetch_array($result)) 
{ 
//echo the relevant fields. 
    echo(row[0]); 
} 

您還可以使用print_r的方法來轉儲整個資源。 如果代碼中存在其他錯誤,請使用echo(mysql_error())。 你也應該閱讀php站點上的mysql_query文檔,因爲它被使用了很多。