php Mysql запрос в цикле while - PullRequest
1 голос
/ 02 апреля 2012

Я новичок в php и у меня нет формального обучения, так как я сам изучаю его, у меня есть проблема, и я надеюсь, что кто-то может мне помочь ..: (

У меня есть и массив

$ array = array ("где", "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 ]

2 голосов
/ 02 апреля 2012

Попробуйте использовать следующее:

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

Вы можете объединить несколько предложений where, используя OR и AND в запросе:

WHERE field = 'value' AND field2 ='значение'

0 голосов
/ 02 апреля 2012
$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);
}

тогда вы получите тот же результат с дополнительным столбцом "ключевого слова".

0 голосов
/ 02 апреля 2012

Например, вы можете попробовать использовать цикл 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%' ";


    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...