0

コードをクリーンアップするために、フィールドを含む複数のテーブルを追加したいと考えています。

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
}
?>
4

1 に答える 1

0

1つのクエリで複数のテーブルを検索する必要がある場合

1.mysqliを使用する

2.クエリでUNIONALLを使用する

  1. テーブルに参加

  2. mysqlプロシージャを使用する

于 2012-07-30T16:44:18.190 に答える