PHP 網頁讀取 MySQL 資料庫,篩選欄位內不重覆的資料 SELECT DISTINCT
PHP 網頁讀取 MySQL 資料庫,篩選欄位內不重覆的資料
運用 SQL 指令即可篩選欄位內不重覆的資料:
範例程式碼:直接以程式碼來說明唄!主要為紅色字部份
。
以笨兔網站的 MySQL 資料庫,撈取【學習分享】的資料來做展示,範例設定的 MySQL 相關名稱如下。MySQL 連線部份,可參考笨兔另一篇隨手筆記【db_002】PHP 連接 MySQL 資料庫。
原始資料列表點擊觀看,這裡是以篩選分類
(資料表欄位名l_sort) 欄位內不重覆資料,來做成一個下拉式選單為例。
<?php //MySQL 函數寫法 $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = '12345678'; $dbname = 'pcgame'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connect') ; mysql_query("SET NAMES 'UTF8'"); mysql_select_db($dbname); //DISTINCT 篩選欄位內不重覆之資料 $sql = 'SELECT DISTINCT l_sort FROM learn';
$result = mysql_query($sql) or die('MySQL query error'); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>喵喵笨兔</title> </head> <body> <div> <select> <?php while($row=mysql_fetch_assoc($result)){ ?> <option><?php echo $row['l_sort']; ?></option> <?php } ?> </select> </div>
</body>
</html>ps:若用 do...while 寫如下,結果都一樣. <select> <?php $row=mysql_fetch_assoc($result); //此行不寫,則會出現空白格 do{ ?> <option><?php echo $row['l_sort']; ?></option> <?php } while($row=mysql_fetch_assoc($result)); ?> </select>
<?php //PDO 函數寫法 $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = '12345678'; $dbname = 'pcgame'; try{
$dsn = "mysql:host={$dbhost};dbname={$dbname};charset=utf8";
$conn = new PDO($dsn, $dbuser, $dbpass);
//發生錯誤出現錯誤提醒
$conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
//發生錯誤結束資料庫連線並顯示錯誤訊息
die($e -> getMessage());
} //DISTINCT 篩選欄位內不重覆之資料 $sql = 'SELECT DISTINCT l_sort FROM learn';
$rs = $conn -> query($sql); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>喵喵笨兔</title> </head> <body> <div> <select> <?php while ($row = $rs ->fetch(PDO::FETCH_ASSOC)) { ?> <option><?php echo $row['l_sort']; ?></option> <?php } ?> </select> </div>
</body>
</html>