|
|
|
| при запросе "апельсины" выдает кучу постов, которые содержат это слово.
а при запросе "апельсины мандарины" не показывает ни одного.
можно ли совместить запросы с логиками "и" и "или", или как-то объеденить результаты?
вот мой запрос
$sql="SELECT * FROM roma where "."msg ".""." like '%".implode("%' AND msg like '%",$arr)."%'";
|
| |
|
|
|
|
|
|
|
для: Рома
(17.01.2009 в 16:05)
| | Может лучше для каждого типа логики использовать отдельный запрос? | |
|
|
|
|
|
|
|
для: Рома
(17.01.2009 в 16:05)
| | >можно ли совместить запросы с логиками "и" и "или"
? | |
|
|
|
|
|
|
|
для: Trianon
(17.01.2009 в 16:43)
| | ну если я создам два запроса
$sql="SELECT * FROM roma where "."msg ".""." like '%".implode("%' AND msg like '%",$arr)."%'";
$sql="SELECT * FROM roma where "."msg ".""." like '%".implode("%' OR msg like '%",$arr)."%'";
я получу два массива данных.
можно конечно слить два массива в один, а потом удалить повторяющиеся. но. как это сделать? ведь в каждом массиве будут переменныея с одинаковыми ключами.
мож кто знает функцию для слияния массивов ключенезависимо? | |
|
|
|
|
|
|
|
для: Рома
(17.01.2009 в 20:53)
| | что мешает просто издать второй из запросов? | |
|
|
|
|
|
|
|
для: Trianon
(17.01.2009 в 21:19)
| | Вы просто гений!
$sql="SELECT * FROM roma where "."msg like '%".implode("%' AND msg like '%",$arr)."%'"."AND msg like '%".implode("%' OR msg like '%",$arr)."%'";
|
| |
|
|
|
|
|
|
|
для: Рома
(17.01.2009 в 21:55)
| | Чур меня чур.
я Вам этого не советовал. | |
|
|
|
|
|
|
|
для: Trianon
(17.01.2009 в 22:06)
| | да, именно так не совсем хорошо получается
вот так по моему правильней будет
$sql="SELECT * FROM roma where "."msg like '%".implode("%' and msg like '%",$arr)."%' union SELECT * FROM roma where "."msg like '%".implode("%' or msg like '%",$arr)."%'"; | |
|
|
|
|
|
|
|
для: Рома
(18.01.2009 в 10:36)
| | а можно еще один вопросик, в дополнение моей темы?
как мне теперь подсветить жирным шрифтом ключевые слова в результатах?
вот получилась у меня следующая конструкция, все работает.
<?
$arr = explode(" ",$sea);
$msconnect=mysql_connect($mshost, $msuser, $mspassword);
mysql_select_db($msname, $msconnect);
$sql="SELECT * FROM roma where "."msg like '%".implode("%' and msg like '%",$arr)."%' union SELECT * FROM roma where "."msg like '%".implode("%' or msg like '%",$arr)."%'";
$result=mysql_query($sql, $msconnect);
if(!$result){echo "<div class=\"b\">Error!</div>";}
$posts=mysql_num_rows($result);
if(!$posts)
{
echo "
<div class=\"b\">По данному запросу результатов не найдено!</div>";
}
else
{
if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_array($result))
{
$pn=$row['pn'];
$proz=$row['proz'];
$calc=$row['calc'];
$name=$row['name'];
$msg=$row['msg'];
$mobile=$row['mobile'];
$email=$row['email'];
echo "
<div class=\"rg\"><div class=\"tg\">
$msg
<div class=\"i\" align=\"right\">$mobile, $name</div>
</div></div>";
}
}
}
?>
|
| |
|
|
|