2012-02-10 43 views
1

這是要我發瘋,因爲它可能不是我錯過了,但我有一個用戶選擇了一個國家,一個聯盟名稱,並返回找到的結果表形式返回數據。PHP不是從形式

我遇到的問題是,如果該搜索表單提交它沒有返回值,但如果我只是刷新頁面正常,沒有提交它工作正常,並返回所有結果。正如你可以看到它下面設置$ subleaguesearch和$ countrysearch變量如果表單沒有被提交,這就是做工精細,它只是當它已經提交,是不是,我只是似乎無法找到原因。任何幫助將是偉大的!謝謝。

P.S我沒有收到錯誤消息,它只是不返回任何東西。我在表單提交後將變量回顯到屏幕上,並用正確的值回顯,所以我知道變量已設置好!

 <form action="" method="post" autocomplete="off"> 
     <table id="searchsubleaguetable" width="670px" align="left" cellpadding="1" cellspacing="0">  
        <tr colspan="2"> 
        <th colspan="2" align="left"><label>SEARCH SUBLEAGUES</th> 
        </tr> 
        <tr> 
        <td align="right"><label>COUNTRY&nbsp;&nbsp;</td> 
        <td align="left"><SELECT NAME="country" style="font-size:12px; padding:4px;"><OPTION VALUE="0">All Countries<?php echo $options;?></option></SELECT></label></td> 
        </tr> 
        <tr> 
        <td align="right"><label>SEARCH&nbsp;&nbsp;</td> 
        <td align="left"><input class="searchinputs" type="text" name="subleaguesearch" size="40" value=""></label></td> 
        </tr> 
        <tr width="100%" height="20px" colspan="2"> 
        <td align="right"><label></td> 
        <td align="left"><input class="searchbutton" type="submit" value="Search" name="searchsubnow"></label></td> 
        </tr> 
       </table> 
      </form> 




     if (isset($_POST['searchsubnow'])){ 
      $subleaguesearch = mysql_real_escape_string($_POST['country']); 
      $countrysearch = mysql_real_escape_string($_POST['subleaguesearch']);   
      if($countrysearch == 0){ 
      $countrysearch = "%%"; 
      } 
     }else{ 
      $subleaguesearch = ""; 
      $countrysearch = "%%"; 
     } 

     $rowsPerPage = 15; 
     $pageNum = 1; 

     if(isset($_GET['page'])){ 
      $chosenpage = mysql_real_escape_string($_GET['page']); 
      $pageNum = $chosenpage; 
     } 

     $offset = ($pageNum - 1) * $rowsPerPage; 

     $result = mysql_query(" SELECT s.league_id, s.leaguename, s.private, s.date, u.flag, u.firstname, u.country, 
           COALESCE(SUM(r.total_points),0) as totalpoints, 
           count(m.member_id) participants 
           from sub_leagues s 
           Left Join members_leagues m 
           On m.league_id = s.league_id 
           Left Join member_results r 
           On r.member_id = m.member_id 
           join members u 
           on s.admin = u.member_id 
           WHERE u.country LIKE '$countrysearch' 
           AND s.leaguename LIKE '$subleaguesearch%' 
           Group By s.league_id 
           Order By r.total_points DESC, participants DESC, s.date ASC " . " LIMIT $offset, $rowsPerPage") 
         or die ("<br/>&nbsp;Error - could not display league"); 
+0

我們能看到表格嗎?當你說刷新時,你的意思是提交之前的請求中的表單後刷新? – dqhendricks 2012-02-10 19:33:38

+1

您可以添加HTML表單,以便我們可以看到它們如何組合在一起? – Chillie 2012-02-10 19:34:29

+0

當我說我刷新的意思只是加載頁面正常,沒有submittion的形式。 – user969729 2012-02-10 19:34:35

回答

1

想象你的問題是在此代碼:

$subleaguesearch = mysql_real_escape_string($_POST['country']); 
$countrysearch = mysql_real_escape_string($_POST['subleaguesearch']);   
if($countrysearch == 0){ 
    $countrysearch = "%%"; 
} 

首先,你應該檢查,確保$ _ POST [「國家」]和$ _ POST [「subleaguesearch」]包含你在想什麼他們包含。如果他們不這樣做,那麼你最有可能錯誤地將該字段命名爲錯誤。

其次,它似乎你已經分配了錯誤的後場到錯誤的搜索變量。注意$ subleaguessearch = $ _POST ['country']而不是等於$ _POST ['subleaguesearch']。同$ countrysearch一樣。所以相反,它應該是這樣的:

$subleaguesearch = mysql_real_escape_string($_POST['subleaguesearch ']); 
$countrysearch = mysql_real_escape_string($_POST['country']); 
+0

啊,我的上帝,哈哈有時候,你只需要新鮮一雙眼睛,看看它爲你!非常感謝!多麼浪費大家的時間......對不起。 – user969729 2012-02-10 19:43:50

+0

@ user969729不用擔心。很高興我能幫上忙。 – dqhendricks 2012-02-10 19:49:01