2017-07-04 53 views
-2

我一直在为此奋斗一段时间,现在任何人都可以为此提供解决方案。 我想只显示firstname的第一个字母是“blah”的结果。请选择名字中的第一个字母

$n=$_GET['n']; 

("SELECT * FROM my_list 
        WHERE setid = '16-17' 
        and firstname like '$n%' 
        order by studentid asc") 

以上是迄今为止的内容,但根本没有显示任何结果。

感谢所有

+0

没有字面意思......你想告诉我们行结果是什么以及它的期望是什么? –

+3

http://bobby-tables.com – Twinfriends

+2

想到/index.php?n='OR 1 = 1 OR'。它被称为sql注入。逃避您的输入或使用准备好的语句 –

回答

0
$n = $_GET['n']; 

    $value = $n[0]; // will give first letter 

    ("SELECT * FROM my_list WHERE setid = '16-17'and 
firstname like '". $value ."%' order by studentid asc") 
+0

大家好,上述所有的例子似乎工作,但我仍然没有得到任何结果。我把你的例子直接到phpmyadmin的SQL和直接运行它,并没有返回结果。我的MySQL可能会出错吗? –

0

也许使用MySQL的LEFT拿到的第一个字符。

SELECT 
    * 
FROM my_list 
WHERE 
    setid = '16-17' 
    AND LEFT(firstname, 1) = 'x' 
ORDER BY 
    studentid ASC 

将返回所有以x开头的名字。

相关问题