Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Сложный запрос mysql (http://forum.oszone.net/showthread.php?t=174693)

venuko 02-05-2010 20:27 1405334

Сложный запрос mysql
 
Есть таблица _pages это страницы с контентом, к определенной странице можно прикрепить рекомендуемые страницы к просмотру, они пишутся в поле recomend тойже таблицы _pages в таком виде 1|2|5|7|9.

При выводе страницы на сайте внизу ссылки на эти рекомендуемые страницы.

Вот запрос, но он почемуто только выводит первую ссылку по номеру 1, другие нет:

PHP код:

$sql="SELECT * FROM ".$prefix."_pages WHERE pid=".$pid."";
$res=$db->sql_query($sql);
$row=$db->sql_fetchrow($res);
$pid intval($row['pid']);
$recomend $row['recomend'];
$where $recomend;
$where str_ireplace("|"" OR WHERE pid="$where);
if (!empty(
$recomend)) {
$query2 $db->sql_query("SELECT pid, title FROM ".$prefix."_pages WHERE pid='".$where."'") or die(mysql_error());
while(
$row4 $db->sql_fetchrow($query2)) {
$pid2 $row4['pid'];
$title2 $row4['title'];
echo 
"$pid2 - $title2 <br/>";
}


Буду признателен за помощь

venuko 02-05-2010 20:51 1405348

:( видимо сложный вопрос

Sham 03-05-2010 00:58 1405525

выведите текст получившегося запроса в браузер, и посмотрите, корректно ли составлен запрос.

вижу что в $where без кавычек, а в самом запросе
Цитата:

Цитата venuko
WHERE pid='".$where."'" »

кавычки есть. Результирующий запрос мб неправильным.
также
Цитата:

Цитата venuko
while($row4 = $db->sql_fetchrow($query2)) { »

судя по названию метода sql_fetchrow он вытаскивает только 1 строку из результата запроса. Выводы делайте сами.

Igor_I 05-05-2010 22:15 1407528

venuko, вчитался :)
WHERE может быть только один раз.

PHP код:

$where str_ireplace("|"" OR pid="$where);
...
$query2 $db->sql_query("SELECT pid, title FROM ".$prefix."_pages WHERE '".$where."'") or die(mysql_error()); 



Время: 19:41.

Время: 19:41.
© OSzone.net 2001-