php mysql查询在while循环中

时间:2012-04-02 01:23:37

标签: php mysql loops

我是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);  

......等等

我希望有一个可能的解决方案/技术......

3 个答案:

答案 0 :(得分:2)

尝试使用以下内容:

$sql = "select * from lady_vega where react like '%".implode("%' OR react LIKE '%", $array)."%'"
$sql_res1 =mysql_query($sql);

您可以在查询中使用ORAND链接多个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);
}

然后你会得到一个额外的“关键字”列相同的结果。