我正在学习php和mysql,现在遇到了一个问题。
我正在使用自动建议 php/javascript 脚本,它开箱即用,基本上以 html 形式接受用户输入,使用 javascript 将用户输入发送到我的 php 文件,在该文件中,它使用“LIKE”查询命令搜索数据库,然后返回一个 html 列表,其中的列表项包含查询找到的“名称”数据。
现在我的问题是:我的数据库中有两个表,wp_terms 和 wp_term_taxonomy(参见下面的插图)。目前,查询搜索“wp_terms”表中的所有条目并选择“name”条目。但我想添加一种过滤器。我希望只获取具有整数“2”作为“父”的条目的名称。
我认为解决这个问题的方法是搜索“wp_term_taxonomy”,将整数“2”作为父项存储条目的“term_id”。然后有另一个查询,它通过“wp_terms”表并输出存储的“term_id”的“名称”。
我不知道这是否是正确的方法。我已经尝试了几天,但没有成功,非常感谢一些帮助。
数据库表说明:
我的 autosuggest.php 代码。这是神奇的事情发生了:
<?php
$db_host = 'localhost';
$db_username = 'user';
$db_password = 'passw';
$db_name = 'db';
$db = new mysqli($db_host, $db_username ,$db_password, $db_name);
if(!$db) {
echo 'Could not connect to the database.';
} else {
if(isset($_POST['queryString'])) {
$queryString = $db->real_escape_string($_POST['queryString']);
if(strlen($queryString) >0) {
$query = $db->query("SELECT name FROM wp_terms WHERE name LIKE '$queryString%' LIMIT 10");
if(mysqli_num_rows($query) > 0) {
if($query) {
echo '<ul>';
while ($result = $query ->fetch_object()) {
echo '<li onClick="fill(\''.addslashes($result->name).'\');">'.$result->name.'</li>';
}
echo '</ul>';
} else {
echo 'OOPS we had a problem :(';
}
} else {
echo '<ul>';
echo '<span style="color:#0196E3";>'.$queryString.'</span> no matches found.';
echo '</ul>';
}
} else {
// do nothing
}
} else {
echo 'There should be no direct access to this script!';
}
}
?>