2013-03-18 200 views
0

我有3個表我想訪問我的搜索php。其中2個包含所有用戶的配置文件信息。一個叫cprofile,另一個叫bprofile。它們都鏈接到包含用戶名,電子郵件,密碼和最重要的個人資料圖片的用戶表。php搜索引擎

隨着搜索引擎,我試圖訪問搜索到個人資料表的信息,並從用戶表中收集帳戶信息。這是我尋找這兩種類型的用戶代碼:

$search_output = ""; 
if(isset($_POST['searchquery']) && $_POST['searchquery'] != "") { 
    $searchquery = preg_replace('#[^a-z 0-9?!]#i', '', $_POST['searchquery']); 
    if($_POST['filter1'] == "Whole Site") { 
     $sqlCommand = "(SELECT count(*) FROM cprofile WHERE firstname ='%".$searchquery."%' OR lastname ='%".$searchquery."%') 
      UNION (SELECT count(*) FROM bprofile WHERE cname ='%".$searchquery."%')"; 
     $query = mysqli_query($db_conx, $sqlCommand) or die(mysqli_error($db_conx)); 
     $count = mysqli_num_rows($query); 
     while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 
      $userid = $row["userID"]; 
      $ret = mysqli_query($db_conx, "SELECT id, username FROM users WHERE id='$userid'"); 
      while($raw = mysqli_fetch_array($ret, MYSQLI_ASSOC)) { 
       $username = $raw['username']; $file= $raw['avatar']; 
      } 
     } 
    } 
} 

是否有人通知我要去的地方錯了,我怎麼能解決這個問題?在此先感謝

+1

請縮進你的代碼,以便它清晰。 – DaveRandom 2013-03-18 00:20:16

+4

不應該在'firstname ='%「中使用'LIKE'。$ searchquery。」%'OR'? – hjpotter92 2013-03-18 00:22:08

+0

這確實有幫助。但我的主要問題是嘗試訪問該獲取數組以獲取帳戶詳細信息,如配置文件圖片和用戶名。 – hsd 2013-03-18 00:28:08

回答

0

我可能會在這裏錯誤的方向,但你從你的查詢得到計數,然後在while循環中尋找一個用戶ID。如果你想要兩者然後做類似

$sqlCommand = " 
    (SELECT userid, count(*) as count FROM cprofile WHERE firstname ='%".$searchquery."%' OR lastname ='%".$searchquery."%') 
    UNION 
    (SELECT userid, count(*) as count FROM bprofile WHERE cname ='%".$searchquery."%') 
"; 
+0

謝謝,這確實有助於我面對的問題。它現在收集了我希望從while循環中獲得的所有內容。再次感謝您的幫助:) – hsd 2013-03-18 11:31:38