我有一个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')
的代码时,它会显示所有数据,但是当我添加上面的代码时,它会在匹配时显示任何内容。
如果有人可以帮我修复我的代码,我会非常感激。 谢谢!
答案 0 :(得分:0)
您错误地使用了IN
。 IN
比较逗号分隔的字符串或值列表。这可以是文字:
WHERE username IN ('user1', 'user2', 'user3')
或者它可以来自子查询:
WHERE username IN (SELECT username FROM users)
如果您想要完全匹配,则WHERE
子句应为
WHERE username = '$username'
如果仍然无效,您必须验证您是否正在向数据库发送正确的查询。
echo $query_string;