2012-07-17 64 views
-2

我使用以下腳本與自動完成腳本一起搜索我的數據庫。例如,如果我在信中輸入a,就會找到所有的ID。我想通過鍵入字母a來改變它,它只會在id字段中顯示與字母a相同的數據。腳本只拾取前3個字母

<?php 
require('json.php'); 
error_reporting(E_ALL); 
mysql_connect("localhost", "root", "") or 
    die("Could not connect: " . mysql_error()); 
mysql_select_db("timetable") or die("No such database"); 
$sql = sprintf("SELECT id,dsc FROM module WHERE id LIKE '%%%s%%'", 
       mysql_real_escape_string($_REQUEST['term'])); 
$result = mysql_query($sql) 
    or die(mysql_error()); 
$all = array(); 
while ($row = mysql_fetch_array($result)) 
    $all[] = array('value'=>$row[1],'label'=>$row[1]); 
print json_encode($all); 
?> 
+0

退房的模式匹配http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html – Waygood 2012-07-17 14:53:07

+0

要確認 - 你試圖找到以你輸入的字母開頭的東西,而不是用'id'字段中的任何地方找到字符串的東西? – ManseUK 2012-07-17 14:56:47

+0

是我鍵入的字母,通過鍵入字母a,它將在id字段中顯示與字母a有關的數據。謝謝 – Ross 2012-07-17 15:01:11

回答

2

(如果我理解正確你的問題)

你需要改變你的LIKE查詢:

%a% 

耳目一新與aid場的任何位置......

a% 

找到所有與aid場開始......

Docs for LIKE are here

+0

是我鍵入的字母,通過鍵入字母a,它會在id字段中顯示與字母a有關的數據。謝謝 – Ross 2012-07-17 15:09:42