0

我有一个 mysql 表,其中包含我预订系统上所有航班预订的数据。当用户预订航班时,该预订的详细信息连同他们的用户名一起存储在该表中。

现在,我正在创建一个页面,其中所有用户以前的航班都显示在 HTML 表中,除了过滤结果只来自该用户的代码之外,一切正常。

这是我正在使用的(部分)代码;

$query_string = "SELECT name, seats, departure, destination, class, username, miles, timestamp FROM $tablename WHERE username IN ('$username')";

username字段是存储预订航班的用户的用户名,$username变量包含当前登录用户的用户名。我要做的只是显示$username匹配的字段username(因此只显示当前用户的预订)。

当我使用上面没有的代码时WHERE username IN ('$username'),它会显示所有数据,但是当我添加上面的代码时,当有匹配时它什么也不显示。

如果有人可以帮助修复我的代码,我将不胜感激。谢谢!

4

1 回答 1

0

你使用IN不正确。IN比较以逗号分隔的字符串或值列表。这可以是字面的:

WHERE username IN ('user1', 'user2', 'user3')

或者它可以来自子查询:

WHERE username IN (SELECT username FROM users)

如果你想要一个完全匹配,你的WHERE子句应该是

WHERE username = '$username'

如果这仍然不起作用,您必须验证您正在向数据库发送正确的查询。

echo $query_string;
于 2012-08-01T17:32:30.047 回答