我在这里有一个搜索脚本,需要使用MySQL和PHP搜索多个表中的短语/单词。正在搜索的列name
在所有表中都是相同的。任何帮助将不胜感激,这是我的代码如下。MySQL PHP查询从多个表中选择
<?php
$filter = $_REQUEST['query'];
mysql_connect($hostname,$username, $password) or die ("<script language='JavaScript'>alert('Unable to connect to database! Please try again later.'),history.go(-1)</script>");
mysql_select_db($dbname);
$query = 'SELECT * FROM (SELECT `name` FROM `voxmoviesfilestable`) a UNION (SELECT `name` FROM `voxadultfilestable`) b UNION (SELECT `name` FROM `voxmixesfilestable`) c UNION (SELECT `name` FROM `voxconcertsfilestable`) d UNION (SELECT `name` FROM `voxmp3filestable`) e UNION (SELECT `name` FROM `voxfilestable`) WHERE `name` REGEXP \''.$filter.'\' ORDER BY `name`;';
$maxquery = 'SELECT count(*) as cnt FROM `voxmoviesfilestable`, `voxadultfilestable`, `voxmixesfilestable`, `voxconcertsfilestable`, `voxmp3filestable`, `voxfilestable` WHERE `name` REGEXP \''.$filter.'\';';
$result = mysql_query($query) or die ('Error accessing Database');
?>
不是一个解决方案,但是''query ='中有很多语法错误SELECT * FROM WHERE REGEXP \''。$ filter。'\'ORDER BY name;';' – asprin 2013-03-09 06:29:45
任何机会你都可以把你所有的数据输入**一个**表? – 2013-03-09 06:30:12
您的第一个查询无效,没有表名称“SELECT * FROM WHERE REGEXP ...'。第二个查询中的这些表之间是否有任何关系? – 2013-03-09 06:34:09