Ⅰ thinkphp多條組合篩選 怎麼做url 的重寫 不要讓url太長
在根目錄建 .htaccess 文件
代碼
<IfMole mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfMole>、
這代碼是把index.php給去掉
網址重寫還要開啟Apache配置
#LoadMole rewrite_mole moles/mod_rewrite.so //去掉前面#號
tp框架配置文件加 'URL_MODEL'=>2,
Ⅱ php mysql 多條件篩選
$sql="select * from house where house_price> '$cdayprice' and 地位位置=『東城區』
Ⅲ 求解:php商品條件篩選功能你是怎麼做出來的
php按條件篩選商品的功能,還是比較簡單的。
其實就是根據不同的條件組成SQL查詢條件,從資料庫里查出不同的商品出來。
舉個例子:
用戶可以按價格範圍、按品牌、按商品名稱這幾項來綜合查詢。
那麼,在用戶選擇了上面這些查詢條件後(可能這3個條件都設置了,也可能只設置了其中2個),提交到伺服器端,服務端程序收到用戶的查詢條件,開始組裝SQL查詢語句,最後執行組裝好的SQL查詢語句,返回結果給用戶。
代碼舉例:
用戶提交的查詢:
price='0-1000'; //按價格範圍0-1000元查詢
brandid=20; //要求品牌必須是ID號為20的這個(假設這個ID號為20的品牌,名字叫」西部數據")
proctname='綠盤'; //商品名稱只設置了2個字以做模糊查詢
用戶點了查詢按鈕後,根據程序的不同,可能是get方式也可能是post方式發送查詢請求,現假設為post方式。
然後在伺服器端程序中,收到用戶的查詢請求:
$price=$_POST['price'];
$price_arr=explode('-',$price); //這里是把價格範圍按-號拆散成數組,方便在組裝SQL查詢語句時用。
$brandid=$_POST['brandid'];
$proctname=$_POST['proctname'];
當然,上面的數據獲取後,還要進行相應的安全方面的檢查與處理,這里先略過。
接下來,開始組裝SQL查詢語句:
$sqlexp='';
//下面開始組根據用戶設置的查詢條件進行SQL查詢條件的組裝
if(!empty($price)) {
$sqlexp.=' and (price>='.$price_arr[0].' and price<='.$price_arr[1];
}
if(!empty($brandid)) {
$sqlexp.=' and brandid='.$brandid;
}
if(!empty($proctname)) {
$sqlexp.=" and instr(proctname,'$proctname')>0";
}
//下面執行SQL查詢
$result=mysql_query("select * from proct where state=1 ".$sqlexp);
在上面的查詢完成後,把查詢結果返回給用戶,就完成了用戶按條件篩選商品的功能。
Ⅳ 誰知道 php中怎樣實現 條件篩選功能
傳不同的參數就可以。比如 構造鏈接地址 ?a=條件a值&b=條件b值&c=條件c值
如果傳遞的條件為空,那鏈接地址的參數值也為空。
當前頁接收到各個參數值時,若值不為空則加上對應的參數條件作為查詢的where。
Ⅳ php多條件復合查詢
在我們的網站設計過程中,經常會用到多條件查詢,本文的源碼是一個二手房屋查詢的例子。在本例中,我們要實現能夠通過地理位置,物業類型,房屋價格,房屋面積及信息發布日期等多個條件查詢到客戶所需的資料。
查詢文件(search.php)
一、生成查詢語句:
<?
$conn=mysql_connect("localhost","root","");
$db=mysql_select_db("lingyun");
$query="select * from message where tradetype='".$tradetype."'"; //交易類型,如出租,出售
$SQL=$SQL . "wuye='" . $wuye . "'";
if($housetype!="不限"){
$query.=" && housetype='".$housetype."'"; //房屋類型,如二室一廳,三室二廳
}
if($degree!="不限"){
$query.=" && degree='".$degree."'"; //新舊程度
}
if($wuye!="不限"){
$query.=" && wuye='".$wuye."'"; //物業類型 如住房,商鋪
}
if($price2!=""){
switch($price1){
case "大於":
$query.=" && price>'".$price2."'"; //價格
break;
case "等於":
$query.=" && price='".$price2."'";
break;
case "小於":
$query.=" && price<'".$price2."'";
break;
}
}
if($area2!=""){
switch($area1){
case "大於":
$query.=" && area>'".$area2."'"; //面積
break;
case "等於":
$query.=" && area='".$area2."'";
break;
case "小於":
$query.=" && area<'".$area2."'";
break;
}
}
switch($pubdate){ //發布日期
case "本星期內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=7";
break;
case "一個月內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=30";
break;
case "三個月內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=91";
break;
case "六個月內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=183";
break;
}
if($address!=""){
$query.=" && address like '%$address%'"; //地址
}
if(!$page){
$page=1;
}
?>
二、輸出查詢結果:
<?php
if ($page){
$page_size=20;
$result=mysql_query($query);
#$message_count=mysql_result($result,0,"total");
$message_count=10;
$page_count=ceil($message_count/$page_size);
$offset=($page-1)*$page_size;
$query=$query." order by date desc limit $offset, $page_size";
$result=mysql_query($query);
if($result){
$rows=mysql_num_rows($result);
if($rows!=0){
while($myrow=mysql_fetch_array($result)){
echo "<tr>";
echo "<td width='15' height='12'><img src='image/home2.gif' width='14' height='14'></td>";
echo "<td width='540' height='12'>$myrow[id] $myrow[tradetype] $myrow[address] $myrow[wuye]($myrow[housetype])<font style='font-size:9pt'>[$myrow[date]]</font>";
echo "</td>";
echo "<td width='75' height='12'><a href='view_d.php?code=$myrow[code]' target='_blank'>詳細內容</a></td>";
echo "</tr>";
}
}
else echo "<tr><td><div align='center'><img src='image/sorry.gif'><br><br>沒有找到滿足你條件的記錄</div></td></tr>";
}
$prev_page=$page-1;
$next_page=$page+1;
echo "<div align='center'>";
echo " 第".$page."/".$page_count."頁 ";
if ($page<=1){
echo "|第一頁|";
}
else{
echo "<a href='$PATH_INFO?page=1'>|第一頁|</a>";
}
echo " ";
if ($prev_page<1){
echo "|上一頁|";
}
else{
echo "<a href='$PATH_INFO?page=$prev_page'>|上一頁|</a>";
}
echo " ";
if ($next_page>$page_count){
echo "|下一頁|";
}
else{
echo "<a href='$PATH_INFO?page=$next_page'>|下一頁|</a>";
}
echo " ";
if ($page>=$page_count){
echo "|最後一頁|";
}
else{
echo "<a href='$PATH_INFO?page=$page_count'>|最後一頁|</a>";
}
echo "</div>";
}
else{
echo "<p align='center'>現在還沒有房屋租賃信息!</p>";
}
echo "<hr width="100%" size="1">";
?>
</table>
Ⅵ php+ajax 如何實現多條件篩選
給每個列表添加一個統一標記就可以了,所有dl加上一個sel的class,以及每個選中的加check的標記
<dlid="select2"class="neicun"><dt>內存</dt><ddclass="check">512M</dd>
<dlid="select1"class="pinpai"><dt>品牌</dt><ddclass="check">XXX</dd>
//jquery事件綁定
$('.selectdd').click(function(){
$(this).parent().find('.check').removeClass('check');
$(this).addClass('check');
})
//www.hi-docs.com/jquery/click.html
ajax把每個check的值拼起來就可以了
Ⅶ php開發數據多條件篩選需要哪些知識基礎
SQL。
根據不同的條件組成SQL查詢條件,從資料庫里查出不同的商品出來。
在用戶選擇了上面這些查詢條件後(可能這3個條件都設置了,也可能只設置了其中2個),提交到伺服器端,服務端程序收到用戶的查詢條件,開始組裝SQL查詢語句,最後執行組裝好的SQL查詢語句,返回結果給用戶。
Ⅷ php多條件復合搜索怎麼做到
這個用腳本來做更簡單些,不用分多次往a.php傳參。傳一次就行了。
<!--HTML START-->
<!--函數參數推薦寫數字,既對應「摩托羅拉」的id,但由於這里你沒給出,我索性寫上漢字了-->
<a href="javescript:set_made('摩托羅拉')">摩托羅拉</a>
<a href="javescript:set_made('諾基亞')">諾基亞</a>
<a href="javescript:set_made('蘋果')">蘋果</a>
<a href="javescript:set_price('1000-2000')">1000-2000元</a>
<a href="javescript:set_price('2000-3000')">2000-3000元</a>
<a href="javescript:set_price('3000-5000')">3000-5000元</a>
<a href="javescript:set_os('android系統')">android系統</a>
<a href="javescript:set_os('塞班系統')">塞班系統</a>
<a href="javescript:set_os('蘋果系統')">蘋果系統</a>
<!--這里的表單隱藏域,只顯示一個搜索按鈕-->
<form action='' method='post'>
<input id='made' name='made' type='hidden' value='<?php echo $_POST['made'] ?>'/>
<input id='price' name='price' type='hidden' value='<?php echo $_POST['price'] ?>'/>
<input id='os' name='os' type='hidden' value='<?php echo $_POST['os'] ?>'/>
<input type='submit' value = '搜索'/>
</form>
<!--HTML END-->
<!--SCRIPT START-->
<script>
/* @Tips : 這段JS代碼可以放到單獨的JS文件中去,也可以直接寫到head里,隨你。
* @Purpose : 這里幾個函數分別是把隱藏域中的made、price、os設置成對應的值,點擊鏈接時觸發
* @Method : set_made,set_price,set_os
* @Param : str 字元串或者數字,請根據你的需要來決定
* @Return : NULL
*/
function set_made (str) {
document.getElementById('made').value = str;
}
function set_price (str) {
document.getElementById('price').value = str;
}
function set_os (str) {
document.getElementById('os').value = str;
}
</script>
<!--SCRIPT END-->
至於函數參數里你是要添ID 還是添漢字,自己改就行了。
還有你說的那個變色的問題,也不難做,但代碼有點長,我懶得寫了……
就跟你說一下方法:
首先你要給這幾個<a>標簽做個CSS類名,比如<a class='test'>,這個test可以不寫,主要是用來區別頁面其它的<a>標簽。當然不寫也沒關系,只是會讓JS腳本稍慢一點。
然後用document.getElementByTageName('a'),獲取頁面中所有的<a>標簽。做個循環,把class不是test的過濾掉,再用他們的innerHTML屬性與made、price、os的value屬性分別比較,如果是一樣的話,就改變它的背景顏色。
Ⅸ PHP商城實現多條件篩選的問題
加幾個隱藏域。分別標示品牌、價格、顏色等等。點擊之後就在隱藏域裡面存入值。跳轉頁面的時候調用js方法,獲取這幾個隱藏域的內容,拼接成url 。你說的拼接url是怎麼個意思?這些分類條件是會變動的嘛?不變動就可以這樣做。變動的話最多就是從php中拿到分類的值在前端模版裡面循環賦值給js。一樣的。
Ⅹ thinkphp3.2.3多條件篩選是如何做的呢
你的條件用數組裝起來就可以完成,例如:
$condition['name']=$_GET['name'];
$condition['id']=$_GET['id'];
$condition['age']=$_GET['age'];
$result=$info->field($in)->where($condition)->limit(300)->select();