php
  • mysql
  • search
  • 2015-09-05 73 views -1 likes 
    -1

    開啓新的話題,因爲得到了進展,現在需要更多的幫助。搜索欄找到用戶

    我已經創建find.php:

      <h5>Search: </h5> 
         <form action="search.php" method='get'> 
          <input type='text' name='fullname' size='25' /> 
          <input type='submit' value='Search' /> 
        </form> 
    

    而另一頁的search.php

      <h5>Search: </h5> 
         <form action="search.php" method='get'> 
          <input type='text' name='fullname' value='<?php echo $_GET['fullname']; ?>' size='25' /> 
          <input type='submit' value='Search' /> 
        </form> 
        <?php 
        $fullname = $_GET['fullname']; 
        $terms = explode(" ", $fullname); 
    
        $query = "SELECT * FROM users WHERE "; 
    
        foreach($terms as $each){ 
         $i++; 
    
         if($i == 1) 
          $query .= "fullname LIKE '%$each%'"; 
         else 
          $query .= "OR fullname LIKE '%$each%'"; 
    
        } 
    
        $query = mysql_query($query); 
        $numrows = mysql_num_rows($query); 
    
         if($numrows > 0){ 
    
          while($row = mysql_fetch_assoc($query)){ 
           $id = $row['id']; 
           $fullname = $row['id']; 
           $profile_picture = $row['profile_picture']; 
    
           echo "<img src='www.secrethashtags.com/uploads/profile_picture/$profile_picture' height='50' width='50'> <br><a href='www.secrethashtags.com/profile.php?id=$id'>Aviv Day </a></br>"; 
          } 
    
         } else 
          echo "No #Results."; 
    
    
        ?> 
    

    現在,我想在我的網站,它告訴我,沒有結果。 我試圖找到全名像全名在mysql表中的所有用戶。

    如果找到,請回複用戶個人資料圖片30x30和他的姓名鏈接到他的個人資料頁面。

    但它不起作用。希望得到一些幫助。

    +1

    是否報告了任何錯誤?您是否輸出了查詢並查看了正在構建的內容?您應該首先定義'$ i',並在每次迭代結束時增加它。這也將爲您打開SQL注入。您應該切換到'mysqli'或'pdo'並使用預準備語句。 – chris85

    +0

    @ chris85什麼也沒有,它就像numrows = 0並轉到else函數並且不打印任何結果。 –

    +0

    在$ query = mysql_query($ query)之前;輸出查詢。嘗試在db上運行。 – chris85

    回答

    1

    只是改變這一行,它會解決您的問題。

    $query .= " OR fullname LIKE '%$each%'"; 
    
    +0

    分享這個應該修復它的原因嗎?未來的訪問者也會想知道這個問題。 –

    +1

    串聯正在創建無效的SQL語句。它需要一個空間來使其有效。我只是在那裏增加了空間。 –

    0

    首先你必須從mysql改變mysqli


    變化的代碼

    //define $i  
    foreach($terms as $each){ 
          $i++; // increment at the end of each iteration 
    
         if($i == 1) 
          $query .= "fullname LIKE '%$each%'"; 
         else 
          $query .= "OR fullname LIKE '%$each%'"; 
    
        } 
    

    這一部分,你必須顯示SQL錯誤知道真的hapen

    $result = mysql_query($query) or die(mysql_error());; 
        $numrows = mysql_num_rows($result); 
    

    an d這裏

    $id = $row['id']; 
    $fullname = $row['fullname']; 
    
    +0

    所以現在我得到SELECT * FROM用戶WHERE fullname = Aviv DayYou在你的SQL語法中有一個錯誤;檢查與您的MySQL服務器版本相對應的手冊,在第1行 –

    +0

    附近使用正確的語法,因此這是一個SQL錯誤,請嘗試使用'代替' –

    相關問題