Помогите переделать вывод меню в цикле.

Runapa

Постоялец
Регистрация
30 Окт 2010
Сообщения
63
Реакции
5
Собственно было так:

Запрос:
PHP:
$sql = "SELECT * FROM sub_pages WHERE cat in('$p','$cat') or id='$p'";
$res = mysql_query($sql);
while ($out=mysql_fetch_assoc($res)){
if ($out['cat']==$cat){$result_category = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);}
}

И вывод результатов запроса:

PHP:
if ($_SESSION['lang'] == 'rus') 
		{
		$table = "<table class=left_menu border=0 cellspacing='15' align=center>\n";
		$table .= "<tr>\n";

while ($row = mysql_fetch_assoc($result_category))

{
	$table .="<td><a href='sub_page.php?p=".$row['id']."&lang=".$_SESSION['lang']."&cat=".$row["cat"]."'>".$row["cat_name_rus"]."</a></td>";
	$table .= "</tr>\n";
}

	$table .= "</table>\n";

	echo $table;
		
		}

Запрос переделался -

PHP:
$sql = "SELECT * FROM sub_pages WHERE cat in('$p','$cat') or id='$p'";
$res = mysql_query($sql);
while ($out=mysql_fetch_assoc($res)){
if ($out['cat']==$cat){$result_category = $out;}


а вот с выводом теперь проблемы.
Не получается. Максимум чего добился это вывода одной строки. А там их 3+. Как сделать ?
 
print_r($result_category) в первом случае и во втором выложите, сложно ориентироваться не видя структуры
 
Ну вот второго вывода у меня вообще нету. Выкладывать нечего.
А первый случай и так работает. Там менять ничего не надо.
 
Если я все правильно понял то Вам вот этот пример подойдет:
PHP:
do 
{  # перебераем в цикле все найденные записи 
 
if($f[key]=='')
{
}
else{

echo '<tr><td><b>'.$f[key].'</b></td><td width="25">'.$f[kv].'</td></tr>';

}
}
while($f = mysql_fetch_array($r));
 
.все навно не выходит
 
А смысл переделки? Объясните чего вы добивались тем, что в переменной $result_category ресурс от запроса заменили на массив?

На каком основании теперь должна выполнятся строка?
Код:
    while ($row = mysql_fetch_assoc($result_category)) {
 
Мне бы просто хотелось сократить количество sql запросов. И на будущие разобраться что, к чему.

На выполнение той строки я и не претендую. Мне бы рабочий вариант...
 
То есть вы совсем не разбирались в коде и заложенном алгоритме? Просто взяли и стали тыкать что-то и куда-то, стали удалять куски кода? И о каком "рабочем варианте" и чего тогда идёт речь?

Что бы сократить количество SQL запросов нужно разобраться хотя бы в том, что уже имеющиеся делают. Так же нужно знать как данные для формирования меню в БД организованы.
 
В рабочем варианте я разобрался. Запросы изначально я писал и всё работает. Просто у меня из-за недостатка знаний не получается из трех запросов к одной таблице - сделать один.
 
Назад
Сверху