2011-01-14 8 views
0

Ich baue eine Social-Networking-Website, die Nachtclubs und Nachtveranstaltungen gewidmet ist.PHP mysql multi-table Suche zurückgeben verschiedene Tabelle und Feld Daten Zeile für Zeile

Unter anderen Tabellen habe ich eine Benutzer Tabelle, Ereignistabelle und Etabliertabelle.

Ich bin wirklich fasziniert, wie Facebook insbesondere nicht in der Lage ist, Übereinstimmungen von nicht nur Nutzern, sondern auch Seiten, Anzeigen usw. Zeile für Zeile abzufragen und zurückzugeben. Ich bin sicher, die meisten, die dies lesen, die Suche facebook versucht haben

Meine Frage in meinem Fall ist, sollte ich:

  1. Perform 3 separate LIKE% Suche% an jedem der Tische auf search.php.

  2. Draw bis 3 separate Tabellen, die Ergebnisse zu zeigen, was in den entsprechenden Abfragen Spiele, die, wenn sie leer kollabiert sind (auf dem gleichen search.php), dh

In search.php

//query users table 
$query_user = "SELECT user_first_name, user_last_name, username, picture_thumb_url, avatar FROM users JOIN picture ON users.user_id = picture.user_id 
AND picture.avatar=1 ORDER BY users.user_id"; 
$result_users = mysql_query($query_user, $connections) or die(mysql_error()); 
$row_result_users = mysql_fetch_assoc($wid_updates); 

//query events table 
$query_event = "SELECT event_thumb_url, event_name, event_venue, event_date FROM event WHERE event_name LIKE '%".$search_value."%'"; 
$event = mysql_query($query_event, $connections) or die(mysql_error()); 
$row_event = mysql_fetch_assoc($event); 
$totalRows_event = mysql_num_rows($event); 

//query establishments table 
$query_establishment = "SELECT establishment_thumb_url, establishment_name, location_id, establishment_pricing FROM establishment 
WHERE establishment_name LIKE '%".$search_value."%'"; 
$establishment = mysql_query($query_establishment, $connections) or die(mysql_error()); 
$row_establishment = mysql_fetch_assoc($establishment); 
$totalRows_establishment = mysql_num_rows($establishment); 

Mein html:

<table max-width="500" name="users" border="0"> 
    <tr> 
    <td width="50" height="50"></td> 
    <td width="150"></td> 
    <td width="150"></td> 
    <td width="150"></td> 
    </tr> 
</table> 
<table width="500" name="events" border="0"> 
    <tr> 
    <td width="50" height="50"><a href="#profile.php"><img src="Images/<?php echo $row_event['event_thumb_url']; ?>" 
    border="0" height="50" width="50"/></a></td> 
    <td width="150"><?php echo $row_event['event_name']; ?></td> 
    <td width="150"><?php echo $row_event['event_venue']; ?></td> 
    <td width="150"><?php echo $row_event['event_date']; ?></td> 
    </tr> 
</table> 
<table width="500" name="establishments" border="0"> 
    <tr> 
    <td width="50" height="50"><a href="#profile.php"><img src="Establishment_Images/<?php echo $row_establishment['establishment_thumb_url']; ?>" 
    border="0" height="50" width="50"/></a></td> 
    <td width="150"><?php echo $row_establishment['establishment_name']; ?></td> 
    <td width="150"><?php echo $row_establishment['location_id']; ?></td> 
    <td width="150"><?php echo $row_establishment['establishment_pricing']; ?></td> 
    </tr> 
</table> 

ich habe nicht die PHP-Echos für die Benutzertabelle bevölkert.

Dies ist nur, um Ihnen eine Vorstellung davon zu geben, was ich versuche zu tun. Irgendwelche Hilfe?

Antwort

0

Ich würde sagen, es gäbe viele verschiedene Möglichkeiten, dies zu tun, jedoch würde ich alle Tabellen auf einmal durchsuchen und die Ergebnisse in der Reihenfolge der Relevanz anzeigen. Um ehrlich zu sein, ich habe noch nie für mehr als zwei Tabellen, dies zu tun brauchte, aber vielleicht der folgende Link führt Sie mit Ihrem MySQL helfen abfragt link text

Obwohl diese Verbindung für die Volltext ist die Suche eher als die Funktion LIKE