Php 如何在autosuggest脚本中使用表B中的数据从表A中检索数据?
我正在学习php和mysql,现在遇到了一个问题 我使用的是一个autosuggestion php/javascript脚本,它开箱即用,基本上以html形式接受用户输入,使用javascript将用户输入发送到我的php文件,在该文件中,它使用“LIKE”查询命令搜索数据库,然后返回一个html列表,其中的列表项包含查询找到的“name”数据 现在回答我的问题:我的数据库中有两个表,wp_terms和wp_term_分类法(见下面的插图)。目前,查询搜索“wp_terms”表中的所有条目并选择“name”条目。但我想添加一种过滤器。我只希望得到以整数“2”作为“父项”的条目的名称 我认为解决这个问题的办法是通过“wp\u term\u分类法”进行搜索,以整数“2”作为父项存储条目的“term\u id”。然后进行另一个查询,该查询通过“wp_terms”表并输出存储的“term_id”的“name” 我不知道这是否是正确的方法。我已经尝试了好几天了,但都没有成功,我真的非常感谢你的帮助 数据库表说明: 我的autosuggest.php代码。这就是神奇的发生:Php 如何在autosuggest脚本中使用表B中的数据从表A中检索数据?,php,mysql,sql,autosuggest,Php,Mysql,Sql,Autosuggest,我正在学习php和mysql,现在遇到了一个问题 我使用的是一个autosuggestion php/javascript脚本,它开箱即用,基本上以html形式接受用户输入,使用javascript将用户输入发送到我的php文件,在该文件中,它使用“LIKE”查询命令搜索数据库,然后返回一个html列表,其中的列表项包含查询找到的“name”数据 现在回答我的问题:我的数据库中有两个表,wp_terms和wp_term_分类法(见下面的插图)。目前,查询搜索“wp_terms”表中的所有条目并选
<?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!';
}
}
?>
您需要使用一个
SELECT `wp_terms`.`name`
FROM `wp_terms`
INNER JOIN `wp_term_taxonomy`
ON `wp_terms`.`term_id`=`wp_term_taxonomy`.`term_id`
AND `wp_term_taxonomy`.`parent`=2
WHERE `wp_terms`.`name` LIKE '$queryString%'
LIMIT 10
基本上,当您进行连接时,您是基于所使用的连接来组合两个表。此查询基于term\u id
内部联接表,并确保只返回parent
等于2的行
顺便说一下,你真的应该使用和。MySQLi会的,我相信它的使用甚至可能会被弃用。我编辑了你的文章,以包含你以前超链接到的图像。很漂亮。非常感谢你!这让我很开心@user1991083很高兴我能帮忙!谢谢你接受我的回答——如果你不介意的话,我也希望能投赞成票我没有投票所需的15个声望:/如果我记得的话,我会晚些时候回来给你投票:)无论如何,再次感谢。@user1991083啊,好的。:)当然可以