Соединение нескольких запросов в один

zip111

Новичок
Соединение нескольких запросов в один

Ситуация такая:

делаю поиск, и переданную строку разбиваю на слова после чего:

for ($i=0; $i < кол-во слов; $i++) {
$query[$i] = mysql_query("select * from table where column like '%".$slovo[$i]."%'");
}

это нормально когда 1-2 слова но если их двадцать то это не выход. Как можно это сделать одним запросом?
 

Кром

Новичок
Это можно сделать если вставить в запрос мега крутое слово AND. Или OR.
 

zip111

Новичок
ну так я изначально не знаю сколько слов напишет юзер.
 

Фанат

oncle terrible
Команда форума
ну и что?
когда ты выводишь таблицу из базы данных - это ведь тебе не мешает? если ты не знаешь, сколько в базе строк?
 

zip111

Новичок
А можно показать на примере? я что-то не могу вкурить..
 

zyablik

Новичок
Автор оригинала: zip111
А можно показать на примере? я что-то не могу вкурить..
если гуру тут ругаца не будут, то можно делать так

PHP:
	$var = split(" ", trim($q));
	for($i = 0 ; $i < sizeOf($var);$i++){
		if($i > 0) {
		$sql_quer .= " AND ";
		}
		$sql_quer .= " column  like '%" .$var[$i] . "%' " ;
		
	}
$query = "SELECT * FROM $table WHERE ".$sql_quer." ";
 

[DAN]

Старожил PHPClub
PHP:
for(...)
{
	$where = 'columt like' . mysql_escape_string( $var[$i] ) . '%';
}
$where = join(' AND ' , $where);
//$where = join(' OR ' , $where);
 

Nogrogomed

Новичок
Вот тебе пример нормального кода:
PHP:
// есть массив слов $slovo
$zapros="";
foreach ($slovo as $v)
    $zapros.=" `pole` LIKE '%{$v}%' OR ";
$zapros=substr($zapros,0, strlen($zapros)-3); // обрезаем последний OR
Теперь 
$sql="SELECT * FROM `table`WHERE {$zapros}";
$r = mysql_query($sql) or die(mysql_error());
Вот тебе и все должно работать...
 
Сверху