[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает ссылка типа "page.php?cat=1&id=2"
Anopsa
Я только начинаю постигать РНР. Думаю, для "матёрого РНР-волка" такой код не проблема, а я вот уже четвертые сутки пошли как бьюсь над ним. Знающие люди, подскажите, что не так.

Вывожу в цикле DO_WHILE такое многоуровневое меню.
Упростила код, чтоб не загромождать суть вопроса:
HTML
<ul id='menu'>
<li><a href='cat.php?cat=1'> cat_1 </a>
<ul>
<li><a href='cat.php?cat=1&id=1'> id_1 </a></li>

<!--где "cat=1" первичный ключ таблицы БД "tab_cat" -->
<li><a href='cat.php?cat=1&id=2'> id_2 </a></li>
<!--где "id=n" первичный ключ таблицы БД "tab_id" -->
<li><a href='cat.php?cat=1&id=3'> id_3 </a></li>
</ul></li>

<li><a href='cat.php?cat=2'> cat_2 </a></li>
<!--У "cat_2" нет подменю -->

<li><a href='cat.php?cat=3'> cat_3 </a>
<ul>
<li><a href='cat.php?cat=3&id=11'> id_11 </a></li>
<li><a href='cat.php?cat=3&id=12'> id_12 </a></li>
<li><a href='cat.php?cat=3&id=13'> id_13 </a></li>
</ul></li>
</ul>


При клике на любую ссылку в браузер выводятся только верхние "id" из списка : "id_1" и "id_11", хотя ссылки в строке состояния и адресной (и в блокноте при просмотре кода) правильные - те, на которые наводишь или кликаешь.

Получается так:
<a href='cat.php?cat=1&id=2'>страница,отображающаяся в браузере: "id_1" (т.е. верхняя из списка для "cat_1")</a>
<a href='cat.php?cat=3&id=13'>страница,отображающаяся в браузере: "id_11" (тоже верхняя из списка для "cat_3")</a>
А страницы "cat_1", "cat_2", "cat_3" выводятся правильно.

Вот сам цикл:
PHP
<ul id='menu'>
<?
php 
if 
(isset($_GET['cat'])) {$cat = $_GET['cat'];}
if (!isset($cat)) {$cat = 1;}

            
$result_1 
= mysql_query ("SELECT id, title FROM tab_cat",$db);
if (mysql_num_rows($result_1)>0)
{
$row1 = mysql_fetch_array ($result_1);
    do
    
{
    printf ("<li><a href='cat.php?cat=%s'>%s</a>",$row1["id"],$row1["title"]);


        $result_2 = mysql_query ("SELECT id, title FROM tab_id WHERE cat='$cat'",$db);
        if (!$result_2) {$cat++;}  //если подменю нет, идем дальше

        if (mysql_num_rows($result_2)>0)
        {
        $row2 = mysql_fetch_array ($result_2);
            echo "<ul>";    
            do
            
{
            printf ("<li><a href='cat.php?cat=%s&id=%s'>%s</a></li>",$row1["id"],$row2["id"],$row2["title"]);
            }
            while ($row2 = mysql_fetch_array ($result_2));
            echo "</ul></LI>";
        }            
        $cat
++; 
    
}
    while ($row1 = mysql_fetch_array ($result_1));    
}


Прошу прощения, что такой длинный получился вопрос, но я не знаю, как короче обьяснить суть дела.
Может на форуме уже был подобный вопрос, подскажите, где.



Спустя 1 минута, 7 секунд (3.06.2009 - 11:49) Anopsa написал(а):
Прошу прощения, что такой длинный получился вопрос, но я не знаю, как короче обьяснить суть дела.
Может на форуме уже был подобный вопрос, подскажите, где.

Спустя 6 минут, 24 секунды (3.06.2009 - 11:55) Kuliev написал(а):
Anopsa
в код пока не вникал, но судя по почерку вы у ПОПОВА по видео курсам учитесь?

Спустя 2 минуты, 34 секунды (3.06.2009 - 11:58) sergeiss написал(а):
Цитата (Anopsa @ 3.06.2009 - 12:48)
При клике на любую ссылку в браузер выводятся только верхние "id" из списка : "id_1" и "id_11", хотя ссылки в строке состояния и адресной (и в блокноте при просмотре кода) правильные - те, на которые наводишь или кликаешь.

Чудес на свете на бывает...
А что покажет
PHP
echo 'id received '.$_GET['id'].'<br>';

в скрипте cat.php?

Спустя 14 минут, 10 секунд (3.06.2009 - 12:12) Anopsa написал(а):
Цитата
А что покажетPHP
echo 'id received '.$_GET['id'].'<br>';


в скрипте cat.php?


Не пойму, это куда прописывать, где у меня скрипт cat.php

Спустя 8 минут, 32 секунды (3.06.2009 - 12:20) Anopsa написал(а):
Цитата
в код пока не вникал, но судя по почерку вы у ПОПОВА по видео курсам учитесь?


Ну да, а что он что-то не так делает?
Кстати, я его учеников тоже на сайтах сразу узнаю. Соблазн велик - очень уж он доходчиво все обьясняет, самую суть. А в учебниках на 800 стр воды много, а толку..., да и теория от практики очень далеко находится. А без практики ничего не запоминается.

Спустя 8 минут (3.06.2009 - 12:28) Kuliev написал(а):
Anopsa
Мда, советую вам почитать толковую книжецу, а господина Попова забыть как страшный сон.

Теперь к посту.
Я так понимаю вам нужно влошенное меню типа этого:

    Россия
      Москва
      Питер
      Самара
    Украина
      Одесса
      Донецк
      Семфиропль
    США
      Канзас
      Техас
      Калифорния

При нажатие ссылкы чтобы открывалось подменю выбранной категории?

Спустя 10 минут, 18 секунд (3.06.2009 - 12:39) Anopsa написал(а):
Да,
Россия
Москва
Питер
Самара

Украина

США
Канзас
Техас
Калифорния



Россия, Украина, США в одной таблице БД лежат(tab_cat), а города в другой(tab_id). У каждого города идентификатор его страны. А у Украины, например, подменю нет.

Спустя 6 минут, 20 секунд (3.06.2009 - 12:45) Kuliev написал(а):
Anopsa

На вот думай как своему коду прикрутить biggrin.gif
PHP
//=> array("Донецк","Семфирополь","Одесса")
$country = array ("Россия" => array ("Москва","Питер","Самара","Орел"),
"Украина"=> array(), "США"=> array ("Техас","Калифорния","Мичиган","Ойева"));

$city = isset($_GET['city'])? $_GET['city'] : null;

echo 
"<ul>\n";

foreach (
$country as $key=>$val)
{
  echo 
"<li class=li_><a href='".$_SERVER['PHP_SELF']."?city=".$key."'>".$key."</a>\n\r";

     if (
$city != $key || $city == null)
     continue;

     echo 
"<ul type=square>\n";

     foreach (
$country[$city] as $k=>$v)
     {

        echo 
"<li class=li><a href='".$_SERVER['PHP_SELF']."?city=".$city."&link=".$v."'>".$v."</a>\n";
     }

    echo 
"</ul>\n";

}

 echo 
"</ul>\n";

Спустя 5 минут, 21 секунда (3.06.2009 - 12:50) sergeiss написал(а):
Цитата (Kuliev @ 3.06.2009 - 13:45)
На вот думай как своему коду прикрутить

Не поможет, мне кажется. Потому что
Цитата (Anopsa @ 3.06.2009 - 13:12)
Не пойму, это куда прописывать, где у меня скрипт cat.php


Спустя 5 минут, 28 секунд (3.06.2009 - 12:56) Kuliev написал(а):
sergeiss
+1 biggrin.gif

Жду вопросов. ph34r.gif

Спустя 1 час, 3 минуты, 9 секунд (3.06.2009 - 13:59) Anopsa написал(а):
Прошу прошния, вынуждена была отлучится.

Kuliev
Спасибо, за советы и участие.

Только у меня "Москва","Питер","Самара","Орел" в цикле должны выводится, из Базы Данных. Это отдельные строки из таблицы БД "tab_id", у каждой, естественно, свой идентификатор.
"Россия, Украина, США" - тоже из БД, но уже из другой таблицы "tab_cat" и тоже должны выводиться в цикле.
Я не знаю зарание сколько будет пунктов в меню, сколько в подменю, может где-то и совсем не будет.



Спустя 5 минут, 8 секунд (3.06.2009 - 14:04) Kuliev написал(а):
Anopsa
Скопируй мой код и посмотри что пулучается, если ты заметил я вырезал из массива и закоментировал города для Украины и там при работе скрипта города для Украмны не выводятся.

Цитата

Я не знаю зарание сколько будет пунктов в меню, сколько в подменю, может где-то и совсем не будет.


Это уже реализованно в этом скрипте.

Спустя 16 минут, 18 секунд (3.06.2009 - 14:20) sergeiss написал(а):
Kuliev!!! Чегой-то ты сегодня невнимательный какой-то wink.gif

Цитата (Anopsa @ 3.06.2009 - 12:48)
Упростила код


Цитата (Kuliev @ 3.06.2009 - 15:04)
если ты заметил


Спустя 7 минут, 45 секунд (3.06.2009 - 14:28) Anopsa написал(а):
Да, спасибо, сейчас поэксперименирую, поподставляю свои данные, посмотрю, что получится.

Спустя 1 час, 34 минуты (3.06.2009 - 16:02) Kuliev написал(а):
sergeiss
Мда... Нужно выспаться и отдохнуть. rolleyes.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.