PHP ~ MySQL 資料庫多欄位同時搜尋 & MySQL 資料庫取前幾筆、後幾筆或區間範圍內幾筆的資料!(含PDO範例)
php - limit :MySQL 資料庫取特定筆數的資料
php - MySQL 資料庫多欄位同時搜尋
SQL 查詢語法:
PS:CONCAT是先將裡面的資料結合再作查詢。例如欄位1是AB、欄位2是CD,結合後是ABCD,所以查詢BC是查的到。改成以下個別查詢就可避免此問題:
SELECT * FROM 資料表名 WHERE 欄位名1 LIKE %% OR 欄位名2 LIKE %%
以連接笨兔網站的 MySQL 資料庫,取得【學習分享】的資料來做展示,範例設定的 MySQL 相關名稱如下。MySQL 連線部份,可參考笨兔另一篇隨手筆記【db_002】PHP 連接 MySQL 資料庫。
範例程式碼1:MySQL 函數寫法
紅色字部份
。笨兔小站上的各搜尋欄位皆以此方法
。<?php $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); $_a="'%".$_POST['search']."%'"; $sql='SELECT * FROM learn WHERE CONCAT(`l_id`,`l_date`,`l_sort`,`l_number`,`l_description`) LIKE '.$_a.' limit 3'; $result = mysql_query($sql) or die('MySQL query error'); if ($result && mysql_num_rows($result) > 0){ while($row = mysql_fetch_array($result)){ print_r($row); echo '<br>'; } } mysql_close($conn); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP ~ MySQL 資料庫多欄位同時搜尋 & MySQL 資料庫取前幾筆或後幾筆資料!</title> </head> <body> <form id="form1" name="form1" method="post" action=""> <input type="text" name="search" id="search" /> <input type="submit" name="btn" id="btn" value="搜尋" /> </form> </body> </html>
範例程式碼2:PDO 函數寫法 (2019/7/5)
<?php $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());
} $sql="SELECT * FROM learn WHERE CONCAT(l_id, l_date, l_sort, l_number, l_description) LIKE '%{$_POST['search']}%' limit 3";
$rs = $conn -> prepare($sql);
$rs -> execute();
while($row = $rs -> fetch()){
echo $row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ".$row[4]." ".$row[5]."<hr>";
} ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>喵喵笨兔 の 喵喵的家~遊戲天地</title> </head> <body> <form id="form1" name="form1" method="post" action=""> <input type="text" name="search" id="search" /> <input type="submit" name="btn" id="btn" value="搜尋" /> </form> </body> </html>
PDO函數範例結果:一開始會顯示所有陣列資料 (笨兔只抓取3筆資料),您再試著輸入欄位名稱內的字去尋找唄!^ ^
1 2017-09-10 遊戲 game_001 玩遊戲時的相容性問題參考解決法 (玩舊遊戲無法PLAY或執行修改器無作用) game_001.html