我正在尝试为组合框完成自动完成功能,我按照http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/form/forum-search.html
进行了操作我的php查询:
if (!$con) {
throw new Exception("Error in connection to DB");
}
$sql = "SELECT first_name FROM students WHERE first_name ILIKE '%$query%' ORDER BY name ASC";
$result = pg_query($con, $sql);
ORDER BY name ASC";
while ($row = pg_fetch_array($result))
{
$names[] = array('name' => $row[0]);
}
$name_list = array();
$name_list['success'] = true;
$name_list['names'] = $names;
$name_list['totalCount'] = count( $name_list['names'] );
echo json_encode($name_list);
在我的情况下,用户可以输入姓氏而不是学生的名字,所以我需要编辑查询,以便在检查名字的结果为空后检查姓氏。这是我做的但没有奏效:
$sql = "SELECT first_name FROM students WHERE first_name ILIKE '%$query%' ORDER BY name ASC";
$result = pg_query($con, $sql);
if(pg_num_rows($result) == 0)
$sql = "SELECT last_name FROM students WHERE last_name ILIKE '%$query%' ORDER BY name ASC";
答案 0 :(得分:0)
请尝试以下修改: 它只是PHP手册中的一个例子,请相应地更改查询
<?php
$result=pg_query($conn, "SELECT * FROM x WHERE a=b;");
if (!$result) {
echo "query did not execute";
}
$rs = pg_fetch_assoc($result);
if (!$rs) {
echo "0 records"
}
?>
答案 1 :(得分:0)
使用OR条件:
SELECT first_name, last_name
FROM students
WHERE first_name ILIKE '%$query%'
OR last_name ILIKE '%$query%';
您还应该阅读术语“SQL注入”。您的代码容易受到攻击。