我试图使用两个下拉框来搜索我的数据库。($k)服务及($t)市镇。但只有一个术语是工作的,我是PHP新手。我知道我知道使用mysqli,我只是想让它工作并稍后更新。
$k = $_GET['k'];
$t = $_GET['t'];
$i = 0;
$term1 = explode(" ", $k);
$term2 = explode(" ", $t);
$result = array_merge($term1, $term2);
$query ="SELECT * FROM clients WHERE ";
foreach ($result as $each) {
$i++;
if ($i == 1)
$query .= "company_services LIKE '%$each%'" . "OR town LIKE '%$each%'";
}
$dbconnect=@mysql_connect($mysql_host, $mysql_user, $mysql_password);
$db = mysql_select_db('db_name');
$query = mysql_query($query) or die(mysql_error());;
$numrows = mysql_num_rows($query);
if ($numrows > 0){
while ($row = mysql_fetch_assoc($query)) {
也许这样可以工作?
if( isset( $_GET['k'], $_GET['t'] ) ){
$term1 = explode( " ", $_GET['k'] );
$term2 = explode( " ", $_GET['t'] );
$result = array_merge( $term1, $term2 );
$clauses=array();
$query ="select * from `clients`";
foreach( $result as $word ) {
$clauses[]="( `company_services` like '%$word%' OR `town` like '%$word%' )";
}
$query = !empty( $clauses ) ? $query . ' where ' . implode(' or ',$clauses ) : $query;
$dbconnect=@mysql_connect( $mysql_host, $mysql_user, $mysql_password );
$db = mysql_select_db( 'db_name' );
$query = mysql_query( $query ) or die( mysql_error() );
$numrows = mysql_num_rows( $query );
if ($numrows > 0){
while ($row = mysql_fetch_assoc($query)) {
/* do stuff*/
}
}
}
$result = array_merge($term1, $term2);
这将把$result设置为一个值数组。目前,您只使用了$result-array的第一个值。把你的foreach循环改成这样来使用所有的值:
foreach ($result as $each) {
$query .= "company_services LIKE '%$each%' OR town LIKE '%$each%' ";
}