我似乎无法从mySQL数据中执行正确的选择。
$sort = $_GET['sort'];
// ...
$sql = "SELECT id, title, genre, format, year FROM dvd WHERE format LIKE '$sort%'";
$result = mysql_query($sql, $link);
<ul class="grid">
<?php
while ($row = mysql_fetch_assoc($result))
{ ?>
...
where $sort = 'dvd'
但是,当我尝试手动操作时,
SELECT id, title, genre, format, year FROM dvd WHERE format LIKE 'dvd'
我能够使用phpmyadmin获得结果 - &gt; mySQL - &gt; SQL。
为什么我选择格式时无法获取数据?
我尝试了其他列,如流派和标题,我能够得到我想要的结果。这些列都被构造为相同的VARCHAR和相同的设置
答案 0 :(得分:0)
试试这个:
"SELECT id, title, genre, format, year FROM dvd WHERE format LIKE '". $sort ."%'";
不要忘记$ sort变量来自$ _GET并且它必须是安全的
答案 1 :(得分:0)
“格式”这个词可能是一个有冲突的关键字......将列名“格式”更改为其他内容......它会起作用......
答案 2 :(得分:0)
询问你的数据库,而不是那些不知道你的数据库是什么的陌生人。
以这种方式运行您的查询
$sort = mysql_real_escape_string($_GET['sort']);
$sql = "SELECT id, title, genre, format, year FROM dvd WHERE format LIKE '$sort%'";
$result = mysql_query($sql, $link) or trigger_error(mysql_error()." in ".$sql);
看看它说的是什么。