2013-01-15 94 views
0

我對使用php/mysql編碼非常陌生,並且顯示鏈接到sql數據庫的結果時遇到了一些小問題。如何使用php/mysql顯示/過濾搜索結果

目前人們使用下面的代碼進行搜索 - 工作正常 - 這是一個下拉選擇框,但您只能選擇一個選項。我希望它是這樣的項目是複選框,你可以選擇多個項目。

我已經在下面列出了人們向數據庫輸入數據時使用的代碼 - 這是複選框 - 我嘗試用這個代替'drop down select code',但它不起作用。

是否有人知道我必須使用什麼代碼來替換「下拉選擇代碼」,以便複選框可以查看,並且可以過濾多個項目 - 我還包括「結果頁面代碼」,它顯示結果,我在想'ClientStage'需要添加到'複選框代碼'的地方。

對不起,我缺乏這方面的知識,並會感謝一些幫助?


下拉菜單中選擇CODE


<select name="ClientStage" id="ClientStage"> 
      <option value=""></option> 
      <?php 
     include 'Easyspace.php'; 
     $sql = 'SELECT * FROM `clienttype`;'; 
     $rs = mysql_query($sql, $conn) or die ("error with sql query ".$sql); 

     while ($row = mysql_fetch_array ($rs)){ 
      $ClienttypeID = $row["ClienttypeID"]; 
      $Clienttype = $row["Clienttype"]; 

      echo '<option value="' .$ClienttypeID. '">' .$Clienttype. '</option>'; 
     } 
     ?> 
      </select></span> 

複選框CODE


<table width="100%" border="0" cellspacing="1"> 
    <?php 
    $side=1; 
    $sql = 'SELECT * FROM `clienttype`;'; 
    $rs = mysql_query($sql, $conn) or die ("error with sql query ".$sql); 

    while ($row = mysql_fetch_array ($rs)){ 
     $ClienttypeID = $row["ClienttypeID"]; 
     $Clienttype = $row["Clienttype"]; 

     if ($side == 1){ 
      $side = 2; 
      echo '<tr>'; 
      echo '<td><span class="RPATtext"><input type="checkbox" name="Clients[]" value="' .$ClienttypeID. '"> ' .$Clienttype. '</div></td>'; 

     } else { 
      $side = 1; 
      echo '<td><span class="RPATtext"><input type="checkbox" name="Clients[]" value="' .$ClienttypeID. '"> ' .$Clienttype. '</div></td>'; 
      echo '<option value="' .$ClienttypeID. '">' .$Clienttype. '</option>'; 
     } 

    } 
    ?> 
    </table> 

結果頁面代碼


<?php 

    $Country = $_POST['Country']; 
    $County = $_POST['County']; 
    $ClientStage = $_POST['ClientStage']; 
    $HealthIssues = $_POST['HealthIssues']; 

    include 'Easyspace.php'; 
    $sql = "SELECT * FROM `therapists` WHERE "; 

    if ($Country){ 
     $sql .= "`Country` = '$Country'"; 
    } 

    if ($County){ 
     if ($Country){ 
      $sql .= ' AND ';  
     } 
     $sql .= "`County` = '$County'"; 
    } 

    if ($ClientStage){ 
     if ($Country or $County){ 
      $sql .= ' AND ';  
     } 
     $sql .= "FIND_IN_SET('$ClientStage', Client_typeID)"; 
    } 

    if ($HealthIssues){ 
     if ($Country or $County or $ClientStage){ 
      $sql .= ' AND ';  
     } 
     $sql .= "FIND_IN_SET('$HealthIssues', IssuesID)"; 
    } 
    // echo $sql; 

    $rs = mysql_query($sql, $conn) or die ("error with sql query ".$sql); 

    while ($row = mysql_fetch_array ($rs)){ 
     $TherapistID = $row['TherapistID']; 
     $Title = $row['Title']; 
     $FirstName = $row['First Name']; 
     $LastName = $row['Last Name']; 
     $PostCode = $row['PostCode']; 

     echo '<tr>'; 
     echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$Title. '</td>'; 
     echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$FirstName. '</td>'; 
     echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$LastName. '</td>'; 
     echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$PostCode. '</td>'; 
     echo '<td height="34" valign="middle" bgcolor="#D9E5C3"><p class="bodycopy"><a href="Therapist.php?ID=' .$TherapistID. '">View more details</a></p></td>'; 
     echo '</tr>'; 

    } 

    ?> 
+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – Kermit

+0

看看[這裏](http://ivaynberg.github.com/select2/) –

回答

0

這是你的新的結果代碼。我希望這就是你要找的。注意你的代碼:試着將小寫字母放在小寫字母中($ Country必須是$ country,嘗試爲MySQL使用PDO等)。

<?php 

$Country = $_POST['Country']; 
$County = $_POST['County']; 
/* change here */ 
$ClientStage = $_POST['Clients']; 
$HealthIssues = $_POST['HealthIssues']; 

include 'Easyspace.php'; 
$sql = "SELECT * FROM `therapists` WHERE "; 

if ($Country){ 
    $sql .= "`Country` = '$Country'"; 
} 

if ($County){ 
    if ($Country){ 
     $sql .= ' AND ';  
    } 
    $sql .= "`County` = '$County'"; 
} 

if ($ClientStage){ 
    if ($Country or $County){ 
     $sql .= ' AND ';  
    } 
    /* change here */ 
    $sql .= 'Client_typeID IN ('; 
    foreach($ClientStage as $i => $id) { 
     if ($i !== 0) 
      $sql .= ','; 
     $sql .= "'" . $id . '"'; 
    } 
    $sql .= ')'; 
} 

if ($HealthIssues){ 
    if ($Country or $County or $ClientStage){ 
     $sql .= ' AND ';  
    } 
    $sql .= "FIND_IN_SET('$HealthIssues', IssuesID)"; 
} 
// echo $sql; 

$rs = mysql_query($sql, $conn) or die ("error with sql query ".$sql); 

while ($row = mysql_fetch_array ($rs)){ 
    $TherapistID = $row['TherapistID']; 
    $Title = $row['Title']; 
    $FirstName = $row['First Name']; 
    $LastName = $row['Last Name']; 
    $PostCode = $row['PostCode']; 

    echo '<tr>'; 
    echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$Title. '</td>'; 
    echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$FirstName. '</td>'; 
    echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$LastName. '</td>'; 
    echo '<td valign="middle" bgcolor="#D9E5C3" class="bodycopy">' .$PostCode. '</td>'; 
    echo '<td height="34" valign="middle" bgcolor="#D9E5C3"><p class="bodycopy"><a href="Therapist.php?ID=' .$TherapistID. '">View more details</a></p></td>'; 
    echo '</tr>'; 

} 

?> 
+0

感謝上面的代碼路易十四...不幸的是,它沒有工作。 – user1635710

+0

嘗試刪除$ sql。=「'」。 $ id。 ''';並用$ sql。= $ id替換它;如果它不起作用,請放一個$ _POST的var_dump請回顯你的SQL查詢。 –