PHP.2 вопроса о выводе нужных комментариев на нужной стр-це

e_moon

Новичок
PHP.2 вопроса о выводе нужных комментариев на нужной стр-це

1.Есть скрипт комментариев, который вставлен в основной скрипт (оба используют разные БД).
В нем используеться переменная $category[cat_id].
Я могу ее вывести на страницу путем <?echo $category[cat_id];?>, но не могу подставить в
встроенный скрипт комментариев.

Приведу кусок кода с переменными основного скрипта, откуда беру $category[cat_id]:
$file = $site_sql->query($db, "SELECT * FROM $db[prefix]_files WHERE file_id = '$id'", 1);
$category = $site_sql->query($db, "SELECT * FROM $db[prefix]_cat WHERE cat_id = '$file[file_catid]'", 1);
if ($category[5] > 0) {
$parent = $site_sql->query($db, "SELECT * FROM $db[prefix]_cat WHERE cat_id = '$category[5]'", 1);
$locbar = "<a href=\"page.php?action=category&id=$category[cat_id]\" class=\"small\">$category[cat_name]</a> :: $file[file_name]";



А вот зачем мне она нужна:
Есть функция, которая задает и проверяет на соответствие выводимые из базы комментарии
(это уже из скрипта комментариев):

// Определям, принадлежит ли эта комментса к этой серии комментариев
if($caturl == $category[cat_id];) { //которую не хочет напрямую

... ;

}

Вроде все понятно изложил, ну навсякий случай уточню:
$caturl - одно из значений в каждой строке, которое лежит в базе,
по ней и выбираються комментарии
$category[cat_id] - это ид категории (которую я не могу подставить)

2.Страницы вызываються по принципу page.php?action=category&id=$category[cat_id]

Но выходит трабл, если вызываеться page.php или page.php?action=search
Надо задать условие типа:
если $category[cat_id] нет, то не проверять значение, а выводить все подряд
(в данном случае достаточно проигнорировать функцию проверки).


Спасибо всем, кто согласиться помочь.
 

SMaster

Guest
И в чем тут трабл? Пишешь в page.php

PHP:
if ($_GET['action'] && $_GET['id']) {
   //Выводим нужный комментарий
} else {
   //Выводим все подряд
}
Кстати, рекомендую писать
PHP:
$category['cat_id']
, а не
PHP:
$category[cat_id]
- более правильно и быстро.
 

Нечто

Психолог РНРClub
PHP:
if(!empty($_GET["id"])) { ... } else { ... }
Это с учетом того, что id категории !=0, иначе isset, а то notice будет.
 

SMaster

Guest
Нечто, а я то раньше по своей наивности думал, что нет разницы между !empty($var) и isset($var). Оказывается есть. Спасибо, что надоумил глянуть по этому поводу в мануал. :)
 

e_moon

Новичок
Товарищи!$_GET["id"] меня загнало в еще больший тупик.
Вот какая ситуация выходит:

// Разделяем строку из базы на столбцы
$row = explode("\t",$file[$i]);
list($ida, $namea, $datea, $emaila, $weba, $filedbname, $cat, $caturl, $ipa, $commentsa) = $row;

Вот если так, то работает и без $_GET["id"]:
// Определям, принадлежит ли эта комментса к этой серии
// комментариев
if($ida == $id)

А если так - нет :(
// Определям, принадлежит ли эта комментса к этой серии
// комментариев
if($caturl == $id) // хотелось бы тут $category[cat_id], но и $id будет неплохо

Дописываю $_GET["id"], срабатывает, но выводяться все подряд, id не учитывает:
// Так пишу:
if ($_GET['action'] && $_GET['id']) // или так: if(!empty($_GET["id"]))
{
// Далее определям, принадлежит ли эта комментса к этой
// серии комментариев
if($caturl == $id) // хотелось бы тут $category[cat_id], но и $id будет не плохо



// page.php?action=file&id=$file[file_name] - это инф-страница
// с формой для комментариев
Мнения посетителей. № текущей категории: <?echo $category[cat_id]; ?> . Для файла №: <?echo $file[file_name]; ?> .
// Определям, принадлежит ли эта комментса к этой серии комментариев
// Такой способ выводид все комментарии, соответствующие
// id страницы без лишних проблем.
if($ida == $id) {
// Если в строке email нету @, то не выводим емайл
if(eregi("@", $emaila)) {
$emaila = "<a href='mailto:$emaila'>$namea</a>";
} else {
$emaila = $namea;
}
}


// page.php?action=category&id=$category[cat_id] - эта страница категории
// - список доступных инф-страниц. На ней колонка, которая должна бы
// содержать комментарии со всех инф-страниц данной категории

Мнения посетителей, № текущей категории: <?echo $category[cat_id]; ?> .
// Определям, принадлежит ли эта комментса к этой серии комментариев
if($caturl == $category[cat_id]) { // Да хоть бы $id работало!
// Если в строке email нету @, то не выводим емайл
if(eregi("@", $emaila)) {
$emaila = "<a href='mailto:$emaila'>$namea</a>";
} else {
$emaila = $namea;
}
}

Если заменить $category[cat_id] ( $caturl == $category[cat_id] )
на что-нибуть "готовое" (напр. число "16"), то все срабатывает и выводит
все комментарии для категории с ид "16".


Надо как-то заполучить значение $category[cat_id], но как?
Как жаль что <?echo; ?> нельзя вставить в качестве переменной.
 
Сверху