2017-07-04 18 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で始まるすべてのファーストネームを返します。

関連する問題