[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Организация линка
VladisOK
Задача стоит следующая:

В рабочий сайт надо добавить выподающее меню со списком производителей
и из него производить запросы для сортировки выводов страниц по производителю

Действия:
Создана таблица:
=====================================
CREATE TABLE `firm` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`pict` varchar(100) NOT NULL default '',
`ord` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
=====================================
Создан PHP код с выподающем меню:
==================================

echo " <table width=\"173\" align=\"center\" border=\"0\">\n";
echo " <tr>\n";
echo " <td class=gray align=right>Производитель :</td>\n";
echo " <td class=gray><select name=name size=1>\n";
$query = "SELECT name FROM firm ";
if($name = mysql_query($query))
{
while(list($id_firm)=mysql_fetch_array($name))
{
echo "<option value='index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype&id_firm=$id_firm'>" . $id_firm . "</option>";
}
} else puterror("error");
echo " </select></td>\n";
echo " </table>";

=============================================

Результат:

Выводиться выподающее меню со списком производителей - но не производится вывод страниц
отсортированных по производителю ( т.е. не работает линк )

Если в адресной строке дописать к имеющемуся линку:
index.php?lang=ru&p=4&id_type=1&id_subtype=213
(который выводит страницы не отсортированный по производителю)
&id_firm=27 ( где 27 это id )
то получим желаемый результат - выводятся страницы отсортированный по производителю

Вывод:

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

Прошу:

Указать на ошибку

P.S. За ранее благодарен




Спустя 13 минут, 16 секунд (12.06.2007 - 12:26) Angerslave написал(а):
Может быть нужно не select юзать, а a href?

Спустя 1 час, 26 минут, 11 секунд (12.06.2007 - 13:52) VladisOK написал(а):
Цитата(Angerslave @ 12.6.2007, 9:26) [snapback]22520[/snapback]
Может быть нужно не select юзать, а a href?


Сделал так - ссылка заработала:
============================================
echo " <table width=\"173\" align=\"center\" border=\"0\">\n";
echo " <tr>\n";
echo " <td class=gray align=right>Производитель :</td>\n";
echo " <td class=gray><select name=name onChange=location.href=this.options[selectedIndex].value >\n";
$query = "SELECT name FROM firm ";
if($name = mysql_query($query))
{
while(list($id_firm)=mysql_fetch_array($name))

{
echo "<option value=\"index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype&id_firm=$id_firm\" >" . $id_firm . "</option>";
}
} else puterror("error");
echo " </select></td>\n";
echo " </table>";
================================================

Но в адресной строке пишент так:

index.php?lang=ru&p=4&id_type=1&id_subtype=213&id_firm=Ariston

а надо:

index.php?lang=ru&p=4&id_type=1&id_subtype=213&id_firm=27

в таблице FIRM, поле NAME - Ariston а id - 27

т.е. не превращает name в id

Это наверно проблема в запросе:

============================================
echo " <table width=\"173\" align=\"center\" border=\"0\">\n";
echo " <tr>\n";
echo " <td class=gray align=right>Производитель :</td>\n";
echo " <td class=gray><select name=name onChange=location.href=this.options[selectedIndex].value >\n";
$query = "SELECT name FROM firm ";
if($name = mysql_query($query))
{
while(list($id_firm)=mysql_fetch_array($name))

{
echo "<option value=\"index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype&id_firm=$id_firm\" >" . $id_firm . "</option>";
}
} else puterror("error");
echo " </select></td>\n";
echo " </table>";
================================================

Спустя 4 минуты, 18 секунд (12.06.2007 - 13:57) Angerslave написал(а):
$query = "SELECT id, name FROM firm ";
if($name = mysql_query($query))
{
while(list($id, $id_firm)=mysql_fetch_array($name))

Спустя 28 минут, 7 секунд (12.06.2007 - 14:25) VladisOK написал(а):
Цитата(Angerslave @ 12.6.2007, 10:57) [snapback]22537[/snapback]
$query = "SELECT id, name FROM firm ";
if($name = mysql_query($query))
{
while(list($id, $id_firm)=mysql_fetch_array($name))


неа - тоже самое

Спустя 42 минуты, 19 секунд (12.06.2007 - 15:07) Angerslave написал(а):
Блин, голову включай, или хочешь чтобы тебе готовый код дали?

Спустя 12 минут, 39 секунд (12.06.2007 - 15:20) VladisOK написал(а):
Цитата(Angerslave @ 12.6.2007, 12:07) [snapback]22544[/snapback]
Блин, голову включай, или хочешь чтобы тебе готовый код дали?


Спасибо за примеры. Но в данном случае всё работает, кроме "превращения" name в id.
Я понимаю, что сейчас уже проблема только в запросе где надо сформулировать, что поле NAME должно быть равно полю ID. Пробую - пока не получается

echo " <table width=\"173\" align=\"center\" border=\"0\">\n";
echo " <tr>\n";
echo " <td class=gray align=right>Производитель :</td>\n";
echo " <td class=gray><select name=name onChange=location.href=this.options[selectedIndex].value >\n";
$query = "SELECT id, name, ord FROM firm WHERE id='$name' ORDER BY ord";
if($name = mysql_query($query))
{
while(list($id, $id_firm)=mysql_fetch_array($name))
{
echo "<option value=\"index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype&id_firm=$id_firm\" >" . $id_firm . "</option>";
}
} else puterror("error");
echo " </select></td>\n";
echo " </table>";
======================================
Такой код вобще всё стопорит ( где отмеченно красным )


Спустя 17 минут, 59 секунд (12.06.2007 - 15:38) Ghost написал(а):
Цитата
в запросе где надо сформулировать, что поле NAME должно быть равно полю ID.


так чтоль?
$query = "SELECT `id`, `name`, `ord` FROM firm WHERE `id`=`name` ORDER BY `ord`";

Спустя 32 минуты, 12 секунд (12.06.2007 - 16:10) VladisOK написал(а):
Спасибо всем за помощь

проблемка оказалась совсем простая
================================================
echo " <table width=\"173\" align=\"center\" border=\"0\">\n";
echo " <tr>\n";
echo " <td class=gray align=right>Производитель :</td>\n";
echo " <td class=gray><select name=name onChange=location.href=this.options[selectedIndex].value >\n";

$query = "SELECT id, name FROM firm ORDER BY name";

if($name = mysql_query($query))
{
while(list($id, $id_firm)=mysql_fetch_array($name))
{
echo "<option value=\"index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype&id_firm=$id\" >" . $id_firm . "</option>";
}
} else puterror("error");
echo " </select></td>\n";
echo " </table>";
==========================================================================

Спустя 1 час, 24 минуты, 37 секунд (12.06.2007 - 17:34) Angerslave написал(а):
Если не секрет, зачем ты это делаешь? Просто поковыряться? Или в будущем планируешь сам писать сложный код?


_____________
Быстрый ответ:

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