2016-04-01 5 views
0

Ich möchte in zwei Tabellen suchen. Versucht this, hat aber nicht funktioniert. Ich erhalte Fehler "Unkown Spalte ...."mySQL: Wie in mehreren Tabellen in der Datenbank suchen?

HTML:

<form method="post" 
<input type="text" name="search_keyword"> 
<input type="submit" name="button_search"> 
</form> 

MYSQL SELECT und PHP:

if(isset($_POST['button_search'])) 
    { 
     $search_keyword = $_POST['search_keyword']; 

     $select = mysql_query("SELECT * from table_1 WHERE match(name_1) against ($search_keyword) 
     union all SELECT * from table_2 WHERE match(name_2) against ($search_keyword)"); 
     while($row = mysql_fetch_array($select)) 
     { 
     echo $row['question']; 
     echo $row['category_name']; 
     } 
    } 

TABELLEN:

Zum Beispiel:

Tabelle 1:

Tabellenname: table_1

Werte (Tabelle 1):

+-------+-------------+ 
| id_1 | name_1 | 
+-------+-------------+ 
| 1  | Phinoy  | 
| 2  | Go   | 
+-------+-------------+ 

Tabelle 2:

Tabellenname: table_2

Werte:

+-------+-------------+ 
| id_2 | name_2 | 
+-------+-------------+ 
| 1  | Gi  | 
| 2  | Phinas  | 
+-------+-------------+ 

Wenn ich "P" oder "Ph" suchen, werden die Werte "Phinoy und Phinas" zeigen.

+0

wollen Sie „Phinoy und Phinas“ als Suchergebnis oder Autosuggestion, während Typ im Feld –

+0

Autosuggestion anzuzeigen. –

+0

möglich duplizieren [hier] (http://stackoverflow.com/questions/394041/mysql-how-to-search-multiple-tables-for-a-string-existing-in-any-column), die unter – roullie

Antwort

1

Gut. Zuerst brauchen Sie einen INNER JOIN, um zwei Tabellen gleichzeitig zu vergleichen. In diesem Code verknüpfen wir das Ergebnis der Tabelle 1 und der Tabelle 2, dann rufen wir die Tabelle_1 auf und mit einem INNEREN JOIN werden wir die Tabelle_2 vergleichen, wenn in der Tabelle_1 ein Ergebnis LIKE table_2 ist und nur in der Tabelle Spalte name_1 und name_2.

<?php 
    $query = "SELECT 
    CONCAT(table_1.name_1,' and ',table_2.name_2) 
    FROM table_1 INNER JOIN table_2 
    ON table_1.name_1 LIKE table_2.name_2"; 
    mysql_query($query); 
?> 
Verwandte Themen