-1

AJAX と MySQL の組み合わせを使用してデータベースを検索し、テーブル内に結果を表示しています。残念ながら、データベースから結果をエコーし​​ませんが、コードはそれを見つけました。

$in=$_GET['txt'];
$msg="";
if(strlen($in)>0 and strlen($in) <20 ) {
    $t=mysql_query("SELECT user FROM users WHERE user LIKE '$in%'");
    while($nt=mysql_fetch_array($t)) {
        $msg.=$nt[name]."->$nt[id]<br>";
    }
}
echo $msg;

問題は私のコードのこの部分にあるようです。

4

3 に答える 3

1

クエリでのみ選択userします。*代わりにすべきですか?

SELECT user FROM users WHERE user LIKE '$in%'
->
SELECT * FROM users WHERE user LIKE '$in%'
于 2013-01-14T10:32:03.327 に答える
1

You have selected user but you want to display name which the query is not returning so:

$in  = mysql_real_escape_string($_GET['txt']);
$msg = '';
if(strlen($in) > 0 && strlen($in) < 20){
  $t = mysql_query("SELECT id, name 
                    FROM users 
                    WHERE user 
                    LIKE '%$in%'");
  while($nt = mysql_fetch_array($t)){
    $msg .= $nt['name'] . "->" . $nt['id'] . "<br />";
  }
}

echo $msg;

Note that I've added mysql_real_escape_string() function for preventing mysql injection

于 2013-01-14T10:33:52.057 に答える
0

You are only selecting user from database and concatenating $msg with $nt[name]

Your query should at least be

"SELECT user,name,id FROM users WHERE user LIKE '$in%'"
于 2013-01-14T10:34:34.770 に答える