我试图在我的情况下显示由特定用户名(变量)提交的所有信息:
<?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 />
<? } ?>
但是不行,我会从表中显示最后一篇文章主题(例如)而不是特定的用户名,我错了吗?
答案 0 :(得分: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
答案 1 :(得分:0)
以下是您的查询:
SELECT *
FROM `article_table`
ORDER BY FIELD (Username, '.$Username.') DESC
LIMIT 1;
这应该返回您正在寻找的用户名。逻辑是当名称匹配时字段返回1,否则返回0。所以降序关键字首先放置匹配。如果没有匹配,那么你将得到另一行。
据推测,数据不存在。您可以通过运行来轻松测试:
SELECT *
FROM `article_table`
WHERE Username = '.$Username.';