Php 从多个表中选择一个值
我已将搜索选项添加到项目中。在这里,当某个特定用户在搜索文本框中输入时,我使用jquery自动完成功能来显示关键字的相关结果 这是我的php脚本Php 从多个表中选择一个值,php,jquery,mysql,Php,Jquery,Mysql,我已将搜索选项添加到项目中。在这里,当某个特定用户在搜索文本框中输入时,我使用jquery自动完成功能来显示关键字的相关结果 这是我的php脚本 <?php require_once('database.php'); if(isset($_POST['queryString'])) { $queryString = $dbc->real_escape_string($_POST['queryString']); if(strlen($queryString)
<?php
require_once('database.php');
if(isset($_POST['queryString'])) {
$queryString = $dbc->real_escape_string($_POST['queryString']);
if(strlen($queryString) >0) {
//$query = $dbc->query("SELECT subjects FROM subject WHERE subjects LIKE '$queryString%' LIMIT 10");
$q = "SELECT tutor_name FROM tutors WHERE tutor_name LIKE '%$queryString%' LIMIT 10";
$r = mysqli_query ( $dbc, $q);
if($q) {
while ($row = mysqli_fetch_array($r, MYSQL_ASSOC)) {
echo '<li onClick="fill(\''.$row['tutor_name'].'\');">'.$row['tutor_name'].'</li>';
}
} else {
echo 'ERROR: There was a problem with the query.';
}
} else {
}
} else {
echo 'There should be no direct access to this script!';
}
?>
这对我来说很有效。。但我的问题是我需要用键入关键字检查多个表。这里我只用一张桌子。。任何人都可以告诉我如何将其他表附加到此查询 使用UNION
SELECT keyword
FROM
(
SELECT tutor_Name AS keyword FROM tutors
UNION
SELECT subject_name AS keyword FROM subjects
UNION
SELECT institute_name AS keyword FROM institutes
) s
WHERE keyword LIKE '%$queryString%'
LIMIT 10
您的查询也容易受到SQL注入的攻击,请阅读下面的文章
UNION
SELECT keyword
FROM
(
SELECT tutor_Name AS keyword FROM tutors
UNION
SELECT subject_name AS keyword FROM subjects
UNION
SELECT institute_name AS keyword FROM institutes
) s
WHERE keyword LIKE '%$queryString%'
LIMIT 10
您的查询也容易受到SQL注入的攻击,请阅读下面的文章
查询合并了返回的三个表
,您可以根据表中的公共列
仅选择表中存在的那些记录
SELECT tutor_name FROM yourDB
LEFT JOIN tableA ON tutor_name = '%$queryString%'
LEFT JOIN tableB ON tutor_name = '%$queryString%';
希望这对您有用。下面的查询合并了返回的三个表
,您只需根据表中的公共列
选择表中的记录
SELECT tutor_name FROM yourDB
LEFT JOIN tableA ON tutor_name = '%$queryString%'
LEFT JOIN tableB ON tutor_name = '%$queryString%';
希望这对你有用。不。。。有不同的字段名和表。。示例:导师表中的导师名称、科目表中的科目名称、研究所表中的研究所名称等。这行的“s”)中的“s”是什么意思?它被称为子查询的别名,我还有另一个问题。。现在,我的自动完成框显示所有科目、导师姓名、学院等相关关键字的结果。现在我想在自动完成框中对它们进行分类。。例如:科目类别下的科目、导师类别下的导师姓名等。现在最好的办法是针对新问题单独提出一个问题。这个问题已经解决了,新问题与这个问题没有任何关系。。。有不同的字段名和表。。示例:导师表中的导师名称、科目表中的科目名称、研究所表中的研究所名称等。这行的“s”)中的“s”是什么意思?它被称为子查询的别名,我还有另一个问题。。现在,我的自动完成框显示所有科目、导师姓名、学院等相关关键字的结果。现在我想在自动完成框中对它们进行分类。。例如:科目类别下的科目、导师类别下的导师姓名等。现在最好的办法是针对新问题单独提出一个问题。此问题已解决,新问题与此问题没有任何关系。您以前的所有问题都没有回答吗?您以前的所有问题都没有回答吗?如果有不同的字段名和表。。示例:导师表中的导师名称、科目表中的科目名称、学院表中的学院名称等。。。那么我如何使用这个查询呢?在subject_name='%$queryString%'上左连接subjectTbl,应该是这样。如果有不同的字段名和表。。示例:导师表中的导师名称、科目表中的科目名称、学院表中的学院名称等。。。那么我如何使用这个查询呢?在subject_name='%$queryString%'上左连接subjectTbl,应该是这样的。