PHP+Mysql多條件多值查詢示例代碼:
創(chuàng)新互聯(lián)公司是一家專注于做網(wǎng)站、網(wǎng)站建設與策劃設計,義馬網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設十年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:義馬等地區(qū)。義馬做網(wǎng)站價格咨詢:13518219792
index.html代碼:
!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"
html
head
meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"
titleSQL多條件查詢示例/title
/head
body
form?method="post"?action="deal.php"
h1房屋出租/h1
房屋類型:select?name="type"
option?value="1"一居室/option
option?value="2"二居室/option
option?value="3"三居室/option
/selectbr/
面積:input?name="area"?type="text"/br/
地址:input?name="addr"?type="text"/br/
input?name="btn"?type="submit"?value="搜索"?/br/
/form
/body
/html
deal.php文件:
?php
//連接數(shù)據(jù)庫
$conn=mysql_connect("localhost","root","");
//選擇數(shù)據(jù)庫
$db=mysql_select_db("數(shù)據(jù)庫名");
//接收?參數(shù)
$type=$_POST['type'];
$area=$_POST['area'];
$addr=$_POST['addr'];
//SQL語句主題
$query="select?*?from?room??where?";?
//根據(jù)條件和傳的值拼接sql語句
//判斷面積不為空
if($type!=""){
//然后根據(jù)具體面積分情況拼接
switch($type){
case?1:
//一居室
$query.="?room_type=1";?
break;
case?2:
$query.="?room_type=2";
break;
case?3:
$query.="?room_type=3";
break;
}
}
//面積
if($area!=""){
$query.="?and?area?={$area}";
}
//地址
if($addr!=""){
$query.="?and?addr?like?'%{$addr}%'";?//地址
}
//執(zhí)行查詢
$result=mysql_query($query);
//遍歷結果
echo?"搜搜結果如下:";
while($row=mysql_fetch_array($result)){
echo?"地址:".$row['addr'];
echo?"br/";
echo?"面積:".$row['area'];
echo?"br/";
echo?"居室:".$row['type'];
echo?"br/";
echo?"價格:".$row['addr'];
echo?"br/";
//等等
}
?
原生SQL查詢有 query() 和 execute() 兩個方法:
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實例化一個空模型,沒有對應任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
對于 query() 方法返回的數(shù)據(jù)集,跟 select() 一樣,可以在模板里直接循環(huán)輸出。
execute()
execute() 方法用于更新和寫入數(shù)據(jù)的 SQL 操作(注:非查詢操作,無返回數(shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實例化一個空模型,沒有對應任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無記錄更新';
}
}
如果查詢比較復雜或一些特殊的數(shù)據(jù)操作不能通過 ThinkPHP 內(nèi)置的 ORM 和 ActiveRecord 模式實現(xiàn)時,就可以通過直接使用原生 SQL 查詢來實現(xiàn)。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應該寫實際的表名字(包括前綴)。
SELECT * FROM `表名` WHERE bookid=22
獲取BOOKID為22的記錄,輸出$uid=
if(strpos($uid,"2")!==false):echo"包含";else:echo"不包含";endif;
判斷UID中是否含有2
MYSQLI方法統(tǒng)計數(shù)量
$num=mysqli_num_rows(mysqli_query($mysqli,"SELECT id FROM `表名` where pinglun=1"));
統(tǒng)計該表中pinglun=1的記錄數(shù)量