我是php新手,我没有正式的学习,因为我自己研究 我有一个问题,我希望有人可以帮助我.. :(
我有和数组
$ array = array(“where”,“are”,“you”等等.....);
我希望用所有这些值搜索数据库
喜欢
$sql_res1 =mysql_query("select * from lady_vega where react like '%$array[0]%'");
$sql_res2 =mysql_query("select * from lady_vega where react like '%$array[1]%'");
$sql_res3 =mysql_query("select * from lady_vega where react like '%$array[2]%'");
....等等
有时候数组没有确切的数值。
有人告诉我,循环可能是一个帮助...我还希望每个mysql查询的结果都会这样存储,以便我可以识别哪些结果来自......
$row1 = mysql_fetch_array($sql_res1);
$row2 = mysql_fetch_array($sql_res2);
$row3 = mysql_fetch_array($sql_res3);
......等等
我希望有一个可能的解决方案/技术......
答案 0 :(得分:2)
尝试使用以下内容:
$sql = "select * from lady_vega where react like '%".implode("%' OR react LIKE '%", $array)."%'"
$sql_res1 =mysql_query($sql);
您可以在查询中使用OR
和AND
链接多个where子句:
WHERE field ='value'AND field2 ='value'
答案 1 :(得分:0)
例如,您可以尝试使用foreach循环。
$terms = explode(",",$array);
$query = "select * from lady_vega where ";
foreach($terms as $each){
$i++;
if($i ==1){
$query.="react LIKE '%$each%'";
}
else
$query .= "OR react LIKE '%$each%' ";
}
答案 2 :(得分:0)
$sql = "";
for($i=0;$i<count($array);$i++){
$sql.="select *,'".$array[$i]."' as keyword from lady_vega where react like '%".$array[$i]."%'";
if($i!=count($array)-1) $sql .= " union ";
}
$result = mysql_fetch_array(mysql_query($sql));
$last_keyword="";
$index = 1;
foreach($result as $row){
if($last_keyword!=$row["keyword"]){
$index++;
${"row".$index} = array();
}
array_push(${"row".$index},$row);
}
然后你会得到一个额外的“关键字”列相同的结果。