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>