-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Сложный запрос 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/>";
}
}
Буду признателен за помощь
|
выведите текст получившегося запроса в браузер, и посмотрите, корректно ли составлен запрос.
вижу что в $where без кавычек, а в самом запросе
Цитата:
Цитата venuko
WHERE pid='".$where."'" »
|
кавычки есть. Результирующий запрос мб неправильным.
также
Цитата:
Цитата venuko
while($row4 = $db->sql_fetchrow($query2)) { »
|
судя по названию метода sql_fetchrow он вытаскивает только 1 строку из результата запроса. Выводы делайте сами.
|
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.
© OSzone.net 2001-