В рабочий сайт надо добавить выподающее меню со списком производителей
и из него производить запросы для сортировки выводов страниц по производителю
Действия:
Создана таблица:
=====================================
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))
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))
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>";
==========================================================================
проблемка оказалась совсем простая
================================================
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 написал(а):
Если не секрет, зачем ты это делаешь? Просто поковыряться? Или в будущем планируешь сам писать сложный код?
_____________