Php 在搜索引擎中使用多个表?
为了清理和整理我的代码,我想添加多个带有字段的表:Php 在搜索引擎中使用多个表?,php,mysql,database,Php,Mysql,Database,为了清理和整理我的代码,我想添加多个带有字段的表: id title description keywords link 但我也希望他们在部分中,所以在MySql中,我希望不同的表具有诸如“新闻”、“社交网络”和“购物”之类的类别,但是我如何才能得到这些呢?这是我的代码: <?php if( count($terms) == 0){ // If no terms entered, stop. echo "No Search Terms Entered."; }else{
id
title
description
keywords
link
但我也希望他们在部分中,所以在MySql中,我希望不同的表具有诸如“新闻”、“社交网络”和“购物”之类的类别,但是我如何才能得到这些呢?这是我的代码:
<?php
if( count($terms) == 0){ // If no terms entered, stop.
echo "No Search Terms Entered.";
}else{
// connect
$connect = mysql_connect("XXX", "XXX", "YYY") or die('Couldn\'t connect to MySQL Server: ' . mysql_error());
mysql_select_db("theqlickcom_774575_db1", $connect ) or die('Couldn\'t Select the database: ' . mysql_error( $connect ));
/* Query Statement Building - Terms together */
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0){
$query .= " AND ";
}
$query .= "keywords LIKE '%{$each}%'";
}
$query = mysql_query($query) or die('MySQL Query Error: ' . mysql_error( $connect ));
$numrows = mysql_num_rows($query);
if ($numrows > 0) {
while ($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$title = $row['title'];
$description = $row['description'];
$keywords = $row['keywords'];
$link = $row['link'];
echo '<h2><a class="ok" href="' . $link . '">' . $title . '</a></h2>' . PHP_EOL;
echo '<p class="kk">' . $description . '<br><br><span class="keywords">' . PHP_EOL;
echo '<p><a class="okay" href="' . $link . '">' . $link . '<br><br><span class="keywords">' . PHP_EOL;
}
} else {
/* Query Statement Building - Terms Separate */
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0){
$query .= " OR ";
}
$query .= "keywords LIKE '%{$each}%'";
}
$query = mysql_query($query) or die('MySQL Query Error: ' . mysql_error( $connect ));
$numrows = mysql_num_rows($query);
if ($numrows > 0) {
while ($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$title = $row['title'];
$description = $row['description'];
$keywords = $row['keywords'];
$link = $row['link'];
echo '<h2><a class="ok" href="' . $link . '">' . $title . '</a></h2>' . PHP_EOL;
echo '<p class="kk">' . $description . '<br><br><span class="keywords">' . PHP_EOL;
echo '<p><a class="okay" href="' . $link . '">' . $link . '<br><br><span class="keywords">' . PHP_EOL;
}
} else {
echo "No results found for \"<b>{$k}</b>\"";
}
}
//disconnect
}
?>
如果必须用一个查询搜索多个表
1.使用
2.在查询中使用UNION ALL
联接表
使用mysql程序
您是说希望能够通过一个SQL查询跨多个结构相同的表进行查询吗?除非您使用正式的表分区,将一个表拆分为多个表通常不是一个好主意。为什么不只让一个表包含一个字段<代码>类别代码>?您能解释一下如何做到这一点,并且不要对任何代码做太多更改吗?您能更详细地解释一下如何做到这一点吗?我没有类别字段的原因是因为排名系统基于id,我真的不希望它像在一个体面的排名顺序一样干净,我认为这比添加字段更容易