目次
ディスカッションへの返信 (解決策)
ホームページ バックエンド開発 PHPチュートリアル 更新日検索の問題について質問する

更新日検索の問題について質問する

Jun 23, 2016 pm 02:20 PM

<form action='/e/search/index0.php' method="post" name="search_news" id="search_news">
<TABLE class=CXSBB border=1 cellSpacing=0 borderColor=#c4c6c4
borderColorLight=#999999 borderColorDark=#ffffff cellPadding=0 width="65%" align=center>
<TBODY>


<TD height=30 width="10%" noWrap align=middle>项目 </TD>

<input name="show" type="hidden" value="title">
<input name="keyboard" type="hidden" id="keyboard2" size="60" value="%%" />
<SELECT style="WIDTH: 140px" name="classid">
<OPTION 選択された値=1>栏目1</OPTION>
<OPTION value=2>栏目2</OPTION> 
<OPTION value=3>栏目3</OPTION> 
<OPTION value=4>栏目4</OPTION> 
<OPTION value=5>栏目5</OPTION> 
<OPTION value=6>栏目6</OPTION> 
<OPTION value=7>栏目7</OPTION> 
<OPTION value=8>栏目8</OPTION> 
<OPTION value=9>栏目9</OPTION> 
<OPTION value=10>栏目10</OPTION> 
<OPTION value=11>栏目11</OPTION> 
<OPTION value=12>栏目12</OPTION> 
<OPTION value=13>栏目13</OPTION> 
<OPTION value=14>栏目14</OPTION> 
<OPTION value=15>栏目15</OPTION>
</SELECT> 

<TD height=30 noWrap>查询范围</TD>

<INPUT style="TEXT-ALIGN: center; IME-MODE: disabled; WIDTH: 40px" value=2013 maxLength=4 name=SSSQ_Q_YEAR>年 <INPUT style="TEXT-ALIGN: center; IME-MODE:無効; 幅: 25px" value=07 maxLength=2 name=SSSQ_Q_MONTH>月 至
  <INPUT style="TEXT-ALIGN: center; IME-MODE: disabled; WIDTH: 40px" value=2013 maxLength=4 name=SSSQ_Z_YEAR>年
<INPUT style="TEXT-ALIGN: center; IME-MODE:無効; 幅: 25px" value=07 maxLength=2 name=SSSQ_Z_MONTH>月
</TD></TR>

</TABLE>


 
<TBODY></TBODY></TABLE><BR>

<TBODY>

<TD align=middle><a href="javascript:search_news.submit();"><IMG
border=0 name=save src="sbcx_files/enter .gif"
value="1" >  </TD><

</form>
????????????????????????????????????????????? ???
私が使用しているのは帝国 CMS です
その中に webesearchindex.php 里設定にそれぞれの検索モジュール、および栏目 ID 应、$s_tempid=(int)$_POST['classid']; が設定されています。
選択择目 1 は通常の年月検索可能、既得;
選択择目 2 は同年同月のみ可能、そうでない場合はのみ可能、
選択择目 3 は栏目 2 と同じ、のみ可能同じ年に同じ月份実行、否か陪審を表示;
選択栏目 4 は、同年 1 月??同年 3 月份、(4 月份??6 月份)、按季度の監査、否かが陪審を表示することができます。择栏目5は可能です選択01-04、諺ができたのは1条01-03月の记录、蟥询02-04の場合、错误が生ずる、蟥询01-07の場合、諺ができたのは2条01-03、04-06月です。
これは webesearchindex.php でどのように変更されますか?


ディスカッションへの返信 (解決策)

<?php
require("../class/connect.php");
require(".. /data/dbcache/class.php");
require("../class/q_functions.php");
eCheckCloseMods('search');//モジュールを閉じる
$link=db_connect();
$empire = new mysqlquery();


//キーワードの処理
function SearchDoKeyboardVar($keyboard){
$keyboard=RepPostVar2(trim($keyboard))
$keyboard=str_replace(' ','',$keyboard);
return $keyboard; }

// SQL に戻る
function SearchDoKeyboard($f,$hh,$keyboard){
$keyboard=SearchDoKeyboardVar($keyboard); $ キーボード))
{
return "";
}
if(!empty($hh))
{
if($hh=='LT')// より小さい
{
$where=$f." < '".$keyboard."'";
}
elseif($hh=='GT')//より大きい
{
$where=$f.">'".$keyboard."'" ;
}
elseif($hh=='EQ')//
$where=$f."='".$keyboard."'" と等しい
}
elseif($hh=='LE ')// 以下
{
$where=$f."<='".$keyboard."'"
}
elseif($hh=='GE')// 以上
{
$where=$f .">='".$keyboard."'"
}
elseif($hh=='NE')//
{
$where=$ と等しくないf."<>'".$keyboard."'";
}
elseif($hh=='IN')//
{
$kr=explode(' ',$keyboard); を含みます。 kcount=count($kr);
$kbs ='';
for($i<$kcount;$i++)
{
if($kr[$ i]))
{
続行;
}
if($kbs)
{
$dh=',';
}
$kbs.=$dh."'".$kr[$i]."' ";
}
if($kbs)
{
$where=$f." IN (".$kbs.")";
}
else
{
return '';
}
}
elseif($ hh=='BT')//スコープ
{
$keyboard=ltrim($keyboard);
if(!strstr($keyboard,' '))
{
return '' }
$kr=explode( ' ',$keyboard);
if(! トリム($kr[0])||!trim($kr[1]))
{
return '';
$where=$f." BETWEEN ' ".$kr[0]."' および '".$kr[1]."'";
}
else//similar
{
$where=$f." LIKE '%".str_replace(" " ,"%",$keyboard)."% '";
}
}
else
{
$where=$f." LIKE '%".str_replace(" ","%",$keyboard)."% '";
}
return $where;
}

//変数
if($_GET['searchget']==1)
{
$_POST=$_GET;
}

$ip=egetip() ;
$searchtime=time();
$ getvar=$_POST['getvar']
{
$getfrom="history.go(-1)"; '';
}
else
{
$ getfrom="../../search/";
$dogetvar="&getvar=1";
// ユーザーグループを検索
if($public_r['searchgroupid '])
{
$psearchgroupid=$public_r ['searchgroupid'];
@include("../data/dbcache/MemberLevel.php");
$searchgroupid=(int)getcvar('mlgroupid'); if($level_r[$searchgroupid][level] <$level_r[$psearchgroupid][level])
{
printerror("NotLevelToSearch",$getfrom,1)
}
}
//検索間隔
$lastsearchtime =getcvar('lastsearchtime');
if( $lastsearchtime)
{
if($searchtime-$lastsearchtime<$public_r[searchtime])
{
printerror("SearchOutTime",$getfrom,1);
//検索フィールド
$searchclass=$_POST ['show'];
if(empty($searchclass)||strstr($searchclass," "))
{
Header("Location:result/?searchid=0) ".$dogetvar);
exit();
}
//時間範囲
$add='';
$addtime='';
$sssqqyear=$_POST['SSSQ_Q_YEAR'];
$sssqqmonth=$_POST ['SSSQ_Q_MONTH'];
$sssqzyear=$ _POST['SSSQ_Z_YEAR'];
$starttime="$sssqqyear"."."$sssqqmonth"- 01";
if(empty($starttime) )
{
$starttime="0000-00-00";
}
$endtime="$sssqzyear"."-"."$sssqzmonth"."-01" ;
if(empty($endtime))
{
$endtime="0000-00-00"
}
if($endtime!="0000-00-00")
{
$addtime=" and (newstime BETWEEN '".to_time($starttime." 00:00:00")."' and '".to_time($endtime." 23:59:59")."')";
}
//ジアゲ
$addprice='';
$startprice=(int)$_POST['startprice'];
$endprice=(int)$_POST['endprice'];
if($endprice)
{
$addprice=" and (price BETWEEN ".$startprice." and ".$endprice.")";
}
//検索栏目及表
$classid=RepPostVar($_POST['classid']);
$s_tbname=RepPostVar($_POST['tbname']);
$s_tempid=(int)$_POST['classid'];
$trueclassid=0;
if($classid)//按栏目
{
if(strstr($classid,","))//多栏目
{
$son_r=sys_ReturnMoreClass($classid,1);
$trueclassid=$son_r[0];
$add.=' and ('.$son_r[1].')';
}
else
{
$trueclassid=intval($classid);
$add.=$class_r[$trueclassid][islast]?" and classid='$trueclassid'":" and ".ReturnClass($class_r[$trueclassid][sonclass]);
}
$tbname=$class_r[$trueclassid][tbname];
$modid=$class_r[$trueclassid][modid];
}
elseif($s_tbname)//按データテーブル
{
$tbnamenum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewstable where tbname='$s_tbname' limit 1" );
if(!$tbnamenum)
{
Header("Location:result/?searchid=0".$dogetvar);
exit();
}
$tbname=$s_tbname;
//モデルid
$thestemp_r=$empire->fetch1("select modid from ".GetTemptb("enewssearchtemp")." where tempid='$s_tempid'");
if(empty($thestemp_r['modid']))
{
Header("Location:result/?searchid=0".$dogetvar);
exit();
}
$modid=$thestemp_r['modid'];
}
else
{
$tbname=$public_r['tbname'];
$modid=0;
}
//表は存在しません
if(empty($tbname))
{
Header("Location:result/?searchid=0".$dogetvar);
exit();
}
//专题
$ztid=RepPostVar($_POST['ztid']);
$trueztid=0;
if($ztid)
{
if(strstr($ztid,","))//多专题
{
$son_r=sys_ReturnMoreZt($ztid);
$trueztid=$son_r[0];
$add.=' and ('.$son_r[1].')';
}
else
{
$trueztid=intval($ztid);
$add.=" と ztid like '%|".$trueztid."|%'";
}
}
//会员
$member=$_POST['member'];
if($member==1)
{
$add.=' and ismember=1';
}
elseif($member==2)
{
$add.=' and ismember=0';
}
//モデル
$tempr=array();
if(empty($class_r[$trueclassid][searchtempid]))
{
if(empty($modid))
{
$tempr=$empire->fetch1("select modid from ".GetTemptb("enewssearchtemp ")." ここで、isdefault=1 limit 1");
}
else
{
$tempr[modid]=$modid;
}
}
else
{
$tempr[modid]=$modid;
}

//关键字
$keyboard=$_POST['keyboard'];
$keyboardone=0;
if(is_array($keyboard))
{}
elseif(strstr($keyboard,','))
{
$keyboard=explode(',',$keyboard);
}
else
{
$keyboard=trim($keyboard);
$len=strlen($keyboard);
if($len<$public_r[min_keyboard]||$len>$public_r[max_keyboard])
{
printerror("MinKeyboard",$getfrom,1);
}
$keyboardone=1;
}

//シンボル
$hh=$_POST['hh'];
$hone=0;
if(is_array($hh))
{}
elseif(strstr($hh,','))
{
$hh=explode(',',$hh);
}
else
{
$hhone=1;
}

//字段
if(!is_array($searchclass))
{
$searchclass=explode(',',$searchclass); $andor=$_POST['andor'];
$andor=$andor=='and'?'and':'or';

$mr=$empire->fetch1("select searchvar,tbname from {$dbtbpre}enewsmod where mid='$tempr[modid]'");
if(!strstr($mr[searchvar],",price,"))//含まれるかどうか
{
$addprice="";
$startprice=0;
$endprice=0;
}
//搜索特殊文字列
$mr[searchvar].='id,keyboard,userid,username,';
$where='';
$newsearchclass='';
$count=count($searchclass);
for($i=0;$i{
if(empty($searchclass[$i]))
{
続行;
}
$searchclass[$i]=str_replace(',','',$searchclass[$i]);
if(!strstr($mr[searchvar],",".$searchclass[$i].","))
{
続行;
}
$searchclass[$i]=RepPostVar($searchclass[$i]);
$dh=empty($newsearchclass)?'':',';
$newsearchclass.=$dh.$searchclass[$i];
$dohh=$hhone==1?$hh:$hh[$i];
$dokeyboard=$keyboardone==1?$keyboard:$keyboard[$i];
$onewhere=SearchDoKeyboard($searchclass[$i],$dohh,$dokeyboard);
if($onewhere)
{
$or=empty($where)?'':' '.$andor.' ';
$where.=$or.'('.$onewhere.')';
}
}
//パラメータ错
if(empty($newsearchclass))
{
Header("Location:result/?searchid=0".$dogetvar);
exit();
}
if($where)
{
$add.=' and ('.$where.')';
}
$allwhere=$add.$addtime.$addprice;
$keyboard=$keyboardone==1?SearchDoKeyboardVar($keyboard):'';
$andsql=addslashes($allwhere);
if(strlen($newsearchclass)>250||strlen($classid)>200||strlen($andsql)>3000||strlen($keyboard)>100||strlen($ztid)> 200)
{
Header("Location:result/?searchid=0".$dogetvar);
exit();
}
//验证码
$checkpass=md5($allwhere.$tbname);
$query="select count(*) as total from {$dbtbpre}ecms_".$tbname." checked=1".$allwhere;
$search_r=$empire->fetch1("select searchid from {$dbtbpre}enewssearch where checkpass='$checkpass' limit 1");
$searchid=$search_r[検索id];
//排序
$orderby=RepPostVar($_POST['orderby']);
$myorder=(int)$_POST['myorder'];
if($orderby)
{
$orderr=ReturnDoOrderF($tempr[modid],$orderby,$myorder);
$orderby=$orderr['returnf'];
}
else
{
$orderby='ニュースタイム';
}
//否か历史记录
if($searchid)
{
$search_num=$empire->gettotal($query);
$sql=$empire->query("update {$dbtbpre}enewssearch set searchtime='$searchtime',result_num='$search_num',onclick=onclick+1,orderby='$orderby',myorder='$ myorder',tempid='$s_tempid' where searchid='$searchid'");
if(empty($search_num))
{
$searchid=0;
}
}
else
{
$search_num=$empire->gettotal($query);
if(empty($search_num))
{
$searchid=0;
}
else
{
$iskey=$keyboardone==1?0:1;
$sql=$empire->query("insert into {$dbtbpre}enewssearch(searchtime,keyboard,searchclass,result_num,searchip,classid,onclick,orderby,myorder,checkpass,tbname,tempid,iskey,andsql,trueclassid) value('$searchtime','$keyboard','$newsearchclass','$search_num','$ip','$classid',1,'$orderby','$myorder','$checkpass',' $tbname','$s_tempid','$iskey','$andsql','$trueclassid')");
$searchid=$empire->lastid();
}
}
//最終検索時刻を設定します
$set1=esetcookie("lastsearchtime",$searchtime,$searchtime+3600*24);
db_close();
$empire=null;
Header("Location:result/?searchid=$searchid".$dogetvar);
?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

Laravelの通知

See all articles