2013-08-19 84 views
0

我想顯示在我的案件提交一個特定的用戶名(變量)的所有信息:SQL查詢顯示最後一排通過一列

<?php 
$Username = $_SESSION['VALID_USER_ID']; 

$q = mysql_query("SELECT * FROM `article_table` ORDER BY FIELD (Username, '.$Username.') DESC LIMIT 1"); 
while($db = mysql_fetch_array($q)) { ?> 

Your Articles: <?=$db['Subject'];?><br /> 

<? } ?> 

但不工作,我就會顯示在上一篇文章主題(例如)從表中,而不是從特定的用戶名,我錯了?

回答

2

這不是ORDER BY的工作原理。您首先需要使用WHERE子句過濾結果。

$q = mysql_query("SELECT * FROM `article_table` WHERE `Username` = '$Username' ORDER BY `other_column` DESC LIMIT 1"); 

在此查詢中用您的日期列的名稱替換other_colum:ie。 date_created

+0

This Works!謝謝! –

0

這裏是你的查詢:

SELECT * 
FROM `article_table` 
ORDER BY FIELD (Username, '.$Username.') DESC 
LIMIT 1; 

這應該返回您正在尋找可用時的用戶名。邏輯是該字段在名稱匹配時返回1,否則返回0。因此,降序關鍵字首先放置匹配。如果沒有匹配,那麼你會得到另一行。

推測數據不存在。您可以通過運行輕鬆測試:

SELECT * 
FROM `article_table` 
WHERE Username = '.$Username.';