0

在我的情况下,我试图显示由特定用户名(变量)提交的所有信息:

<?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 />

<? } ?>

但是不行,我会显示表格中的最后一篇文章主题(例如),而不是特定用户名,我错了?

4

2 回答 2

2

这不是 ORDER BY 的工作方式。您首先需要使用 WHERE 子句过滤结果。

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

other_colum用您的日期列的名称替换此查询:即。date_created

于 2013-08-19T14:02:19.657 回答
0

这是您的查询:

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

这应该在可用时返回您正在寻找的用户名。逻辑是当名称匹配时该字段返回 1,否则返回 0。因此,降序关键字将匹配放在首位。如果没有匹配,那么您将获得另一行。

估计数据不存在。您可以通过运行很容易地测试:

SELECT *
FROM `article_table`
WHERE Username = '.$Username.';
于 2013-08-19T14:04:41.590 回答