PHP mysql多表搜索返回不同的表和字段数据

时间:2011-01-14 05:51:27

标签: php mysql

我正在建立一个专门用于夜总会和夜间活动的社交网站。

在其他表中,我有一个用户表,事件表和场所表。

我真的很感兴趣的是Facebook特别是如何能够查询和返回不仅是用户的匹配,还有一排又一页的页面,广告等。我确定大多数正在阅读此内容的人都试过了facebook搜索

我的问题是在我的情况下,我应该:

  1. 在search.php上的每个表格上执行3个单独的LIKE%搜索%。

  2. 绘制3个单独的表格,以显示空白时折叠的相关查询中匹配的结果(在同一search.php上),即

  3. 在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);
    

    我的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>
    

    我没有为用户表填充PHP echo。

    这只是为了让您了解我想要做的事情。任何帮助?

1 个答案:

答案 0 :(得分:0)

我想说有很多不同的方法可以解决这个问题,但我会一次搜索所有表格,并按相关性顺序显示结果。说实话,我从来不需要为两个以上的表执行此操作,但是以下链接可能会帮助您进行MySQL查询link text

虽然此链接用于全文搜索而不是LIKE功能