1. 請教一個php+mysql多條件查詢的語句
一般方法是這樣的:
$cond="where addtime between '$starttime' and '$endtime'";
if ($work!='') $cond.=" and work='$work'";
if ($user!='') $cond.=" and user='$user'";
if ($text!='') $cond.=" and text like '%$text%'";
$sql="select addtime from table $cond";
......
mysql_query($sql)
........
能夠明白我的思路吧?不明白請說明。
補充:
調試語句應該這樣:
if (!$result)
echo "SQL=$sql, ERROR=".mysql_error();
2. php自定義查詢條件
你可以使用get方式傳值,對表單提交的值進行判斷(如果為空,則過濾掉該值;或者寫分支,構造where條件),構造一個sql的where語句,
如:$where = "name = $_GET['name'] and ......",多個條件就寫多個用and連接的條件,然後你就可以查詢了,至於分頁,就不說了,太簡單了。
3. php 如何查詢滿足任意兩個條件的記錄
可使用case when來實現這個條件,需要嵌套子查詢語句
sql語句代碼示例如下:
復制代碼 代碼如下:
SELECT * FROM DemoTable
WHERE ((SELECT CASE 1 WHEN condition1滿足條件 THEN 1 ELSE 0 END FROM DemoTable )
+(SELECT CASE 1 WHEN condition2滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition3滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition4滿足條件 THEN 1 ELSE 0 END FROM DemoTable)
+(SELECT CASE 1 WHEN condition5滿足條件 THEN 1 ELSE 0 END FROM DemoTable))>=2
我沒遇見過找的這個資料,同學習吧
4. PHP多條件模糊查詢如何寫(原先是asp的想寫成php)
完全一樣的寫法呀,只是變數前面加個$、then用{}代替等,例如前幾行代碼這樣:
$cond='';
if($_POST["ckc"]=="查"){
if($_POST["bh"]!=""){
if($cond=="")$cond="編號like'%"&trim(request("bh"))&"%'";
else$cond=cond."AND編號like'%"&trim(request("bh"))&"%'";
}
5. PHP中關於查詢多個條件的代碼
先向大家說明需求:按照系統的要求,將通過部門名稱、員工姓名、PC名稱、IP地址等等欄位來進行組合查詢從而得到想要的數據結果。那麼,為了簡單起見,我們用兩個條件(部門名稱、員工姓名)的組合查詢來向大家說明這一技術技巧。當只輸入部門名而員工姓名為空值時,那麼部門內所有員工信息將被呈現,只有當同時限制部門與員工姓名時,才能查詢出唯一信息。
那就讓我們開始。
首先建立查詢頁面search.php,不同於上次單一條件查詢,這次需要兩個條件的組合進行查詢。
<html>
<body>
<h3>查詢</h3>
<form action="search_result.php" method="POST">
部門名稱:<input type="text" size=25 name="depart" value=""> <br><br>
員工姓名: <input type="text" size=25 name="ename" value=""> <br><br>
<input type="submit" name="提交" value="提交">
</form>
</body>
</html>
和上次一樣,我們將depart與ename的值通過Post的方法傳遞給search_result.php文件。
然後便到了這次主題的關鍵,search_result.php文件如何接受這兩個參數值,並判斷當其中一個欄位為空值時,如何將其排除查詢條件。
怎麼理解上面這句話,舉例子來說,如果我們單純地將接收參數的查詢語句寫成 select * from info where depart='部門值參數' and ename='員工姓名參數' 的話,那麼如果其中一個參數為空時我們就將得到 select * from info where depart='技術部' and ename='' ,顯然,這樣的查詢很有可能返回空的結果,因為這句查詢語句的意思就是,查詢所有技術部沒有姓名的人的數據,這不是很荒唐么,倒過來如果是 select * from info where depart='' and ename='sunec' ,那麼它的意思就是查詢員工姓名為sunec但是不屬於任何部門的人,那自然也是查詢不到結果的。
正確的做法應該是,在查詢語句中過濾掉那個為空值的的參數。比如,當輸入部門名時應該得到 select * from info where depart='技術部' 。這樣,查詢語句的意思就變成查詢所有部門為技術部員工的信息了,這就是了。
<?php
$link =mysql_connect("localhost","root","管理員密碼");
mysql_select_db("infosystem", $link);
?>
<?php
//注釋1-----------------------------
$depart=$_POST["depart"];
$ename=$_POST["ename"];
//注釋2------------------------
if($depart != null){
$a = " and depart like '%$depart%'";}
if($ename != null){
$b = " and ename like '%$ename%'";}
//注釋3---www.51qgj.com-----
$q = "SELECT * FROM info where (1=1)";
$q .=$a;
$q .=$b;
//注釋4---www.weiyin8.com-------------
mysql_query("SET NAMES GB2312");
$rs = mysql_query($q, $link);
echo "<table>";
echo "<tr><td>部門</td><td>員工姓名</td></tr>";
while($row = mysql_fetch_object($rs)) echo "<tr><td>$row->depart</td><td>$row->ename</td></tr>";
echo "</table>";
mysql_close($link);
?>
注釋1:接收search.php通過post傳遞出的參數,把兩個參數分別存儲入變數:depart和ename。
注釋2:判斷參數是否為空,如果為空,不作任何操作。如果有參數傳出,則生成相應SQL語句。
注釋3:用追加的方法生成SQL語句。
注釋4:生成數據集,顯示數據,最後關閉資料庫連接。
6. php查詢語句和刪除語句
先說刪除,特定id的很容易,也就是 delete from 表名 where id=n;這里的表名不用多說了吧,那個n代表數字,就是id,這樣就可以把id問n的給刪除了。
查詢的話分兩種,先說單表查詢,select * from 表名 where id=n and name=『li』;這里的*,代表你要查詢的東西,比如你要查詢name和age,那就把星號換成name,age就ok,如果想把符合條件的所有欄位都查出來,那就用星號了,然後是where,後面跟的都是條件,id=n和name=li的。
多表查詢比較麻煩,方法也很多,我們公司這邊一般都是用left join,這樣的左鏈接查詢的,說起來是比較麻煩的,去網上搜搜吧,很多關於左鏈接的例子,這里就不詳細說了
7. PHP實現搜索查詢功能的方法技巧
下面是首頁顯示數據表package中的內容,但是有個條件,顯示在首頁的內容還必須是 :欄位status=0,且printing=0的數據才能在首頁列表中顯示出來。
頁面上有一個“搜索”功能,輸入條件後就會根據條件來進行查詢。
一般的搜索的話,只要在首頁顯示列表方法index()中給一個:
?
$map=array();//初始化查詢條件
$map=$this->_search();//調用查詢方法
$total = $this->Model->where ($map)->count(); //這個主要是用來計算頁面顯示數據條數的
if ($total == 0) {
$_list = '';
} else {
$_list = $this->Model->where ($map)->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select();
}
然後,就是寫一個_search():
protected function _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid'] . '%'
);
}
return $map;
}
最後,在設置的“搜索”菜單中,調用這個搜索方法。
但是,這個搜索的.同時,還要確保在欄位status=0,且printing=0的數據中進行搜索。
這個限制條件該加在什麼地方。各種嘗試和查詢後,才知道。限制條件直接加在SQL語句中就行了(如下紅色的地方)。(我自己試的時候一直在如下藍色的地方加條件,屢試屢敗!)
$map=array();
$map=$this->_search();
$total = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->count();
if ($total == 0) {
$_list = '';
} else {
$_list = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select();
}
8. thinkphp條件查詢語句怎麼寫
where()是條件
多表就用table()
9. php 條件查詢
完全可以吧資料庫插入資料庫在是現在查詢操作,之接寫演算法 你打算讀多是詞文本?
還有你這個XML 要是很大內存 怎麼放的下。
多條件排序 循環數組。自定義排序演算法,傳值返回排序好值從新插入新的數組。