2013年9月30日 星期一

※下拉式選單連結資料庫的多重查詢



※下拉式選單連結資料庫的多重查詢



首先分為頁面a.php跟b.php
a.php是給使用者下拉式選單的,而查詢到的資料將會在b.php呈現
資料庫名稱animal
查詢資料表單為homeani

================================================

【a.php】


//會post資料到b.php
<form action="b.php" method="post" accept-charset="utf-8" >
 <p>
      動物
   <select name="Type" id="Type">
      <option value="" selected></option>
      <option value="狗">狗</option>
      <option value="貓">貓</option>
      <option value="兔">兔</option>
   </select>
 </p>
 <input type="submit" name="Submit" value="搜尋寵物">


以上程式碼代表我有"動物"的下拉式選單,選擇項目有狗貓兔和一個空白(不指定動物)
和一個搜尋寵物的按鍵(按下按鍵會跳到new2的頁面)


==================================================

【b.php】


//連結到connSQL.php(此頁面裡面設定資料庫的帳密)
<?php
 require_once('Connections/connSQL.php');
 ?>


<?php
//先設定變數給欄位值→偵測條件
  $Type = $_POST['Type'];

//預設為全選
  $sql = "SELECT * FROM homeani where 1 = 1 " ;

//以下判定篩選資料是否為預設的空值,若不是就偵測變數
    if($Type != ""){
$sql .= "and Type = '".$Type."' " ;
                       }

// 連結到資料庫
$link= mysql_connect("localhost", "root", "1234");//(1,2,3=本機,帳號,密碼)
mysql_select_db("animal");


//設定編碼
mysql_query("SET NAMES 'utf8'");
 mysql_query("SET CHARACTER_SET_CLIENT=utf8");
  mysql_query("SET CHARACTER_SET_RESULTS=utf8");


// 做查詢資料的動作
$qry = mysql_query($sql);


//成功搜尋到資料與否的判斷式
if(mysql_fetch_array($qry)==0){
echo "<h1>沒有符合您篩選的條件,請重新查詢謝謝</h1>";
}else{
echo "<h1>我是符合您搜尋條件的寵物喔^^</h1>";
}


// 可以當作紀錄~從$query得到的變數去資料庫抓取出資料
 while ($row = mysql_fetch_array($qry)) {}



主要困難:
1.多重下拉選單不會設變數去多重查詢
  下拉選單的id若是為abc

   那就設個變數$sql再讓它去抓取$abc的變數
2.連結資料庫有錯誤
   要先在b.php上面先加入 require_once('Connections/connSQL.php');
   在程式內再加入
    $link= mysql_connect("localhost", "root", "1234");
mysql_select_db("animal");



參考網站:

http://php.net/manual/en/function.mysql-result.php