簡體   English   中英

在搜索引擎中使用多個表?

[英]Using multiple tables in a search engine?

為了清理和整理我的代碼,我想添加多個帶有字段的表:

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.使用mysqli

2.在查詢中使用UNION ALL

  1. 聯接表

  2. 使用mysql程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM