2014-04-14 38 views
0

我有這個PHP函數,我想用來從一個名爲「members」的表中檢索一個列「username」。我以前使用過下面的函數,並沒有問題。但是現在,當我嘗試在不同的項目上使用它時,它將不起作用。PHP函數檢索mysql表列不工作

這裏是「的functions.php」頁面代碼:

<?php 
include 'connection.php'; 
function getusername(){ 
     $query = "SELECT `username` FROM `members` WHERE `ID`=`".$_SESSION['user_id']."`"; 

     if($result = mysqli_query($con, $query)){ 
      while($row = mysqli_fetch_assoc($result)){ 
       return $row['username']; 
      } 
     } 
     mysqli_free_result($result); 
} 
?> 

在我的login.php頁面我有一個從表中的「$ _SESSION [‘user_ID的’]存儲用戶ID的會話變量」。我已經迴應了用戶ID,所以我知道用戶ID已設置。

在我想要的用戶名回顯到頁面,我有這樣的代碼片段:

<?php echo getusername();?> 

我也有functions.php的頁面「包含」網頁上,我喜歡的用戶名,以呼應。

+0

您能否給我們多一點在另一頁上的代碼。有沒有錯誤? – George

+0

@George你指的是我需要用戶名回顯的另一頁?另外,沒有錯誤 – user3084715

+2

從''。$ _ SESSION ['user_id']。「'中刪除反引號並用單引號替換''」。$ _ SESSION ['user_id']。'''@ user3084715 –

回答

1

你的$ con沒有在你的函數裏面設置,所以mysqli不會工作。此外,您正在使用反引號來反映您要搜索的值$_SESSION['user_id']反引號是用於列名的,您應該使用'左右的值。

嘗試這樣的:

<?php 
include 'connection.php'; 
function getusername($con){ 
    $query = "SELECT `username` FROM `members` WHERE `ID`='".$_SESSION['user_id']."'"; 
    if($result = mysqli_query($con, $query)){ 
     $row = mysqli_fetch_assoc($result); 
     mysqli_free_result($result); 
     return $row['username']; 
    } 
} 
?> 

然後把它傳遞給$con功能:

$username=getusername($con); 

在一個側面說明,如果有結果作爲returnmysqli_free_result不工作會停止功能。我稍微更新了一下它的功能,讓它按照你的預期工作。

+0

我很欣賞這種迴應,在嘗試之後沒有任何變化。 – user3084715

+0

@ user3084715更新了我的答案,請立即嘗試。 – CodeBird

+0

真棒,謝謝,它工作! – user3084715