Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Организация линка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Не работает линк
VladisOK
Отправлено: 12 Июня, 2007 - 12:33:37
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)

[+]


Задача стоит следующая:

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

Действия:
Создана таблица:
================================ =====
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. За ранее благодарен
 
 Top
evgenijj
Отправлено: 12 Июня, 2007 - 12:52:43
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Цитата:
Прошу: Указать на ошибку

Это не ошибка - это полное непонимание того, что делаешь. Почему браузер должен переходить по этому линку? Где это написано?

<select name="name" onChange="location.href=this.options[selectedIndex].value">
<option value="index.php?id=1">1</option>
<option value="index.php?id=2">2</option>
<option value="index.php?id=3">3</option>
</select>
 
 Top
VladisOK
Отправлено: 12 Июня, 2007 - 13:08:48
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)

[+]


evgenijj пишет:
Цитата:
Прошу: Указать на ошибку

Это не ошибка - это полное непонимание того, что делаешь. Почему браузер должен переходить по этому линку? Где это написано?

<select name="name" onChange="location.href=this.options[selectedIndex].value">
<option value="index.php?id=1">1</option>
<option value="index.php?id=2">2</option>
<option value="index.php?id=3">3</option>
</select>


Ты имеешь ввиду:
================================ =============
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 location.href=this.options[selectedIndex].value 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>";
================================ ====
Так тоже не работает
 
 Top
evgenijj
Отправлено: 12 Июня, 2007 - 13:14:05
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




VladisOK пишет:

Так тоже не работает

У меня работает.
 
 Top
VladisOK
Отправлено: 12 Июня, 2007 - 13:16:39
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)

[+]


evgenijj пишет:
VladisOK пишет:

Так тоже не работает

У меня работает.


Может у меня каких-то кавычек не хватает
 
 Top
evgenijj
Отправлено: 12 Июня, 2007 - 13:19:11
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




VladisOK пишет:

Может у меня каких-то кавычек не хватает

Очень даже может быть.
Третий раз сегодня даю эту ссылку: http://phpfaq[dot]ru/na_tanke
Цитата:

PHP формирует HTML код! И этот код ЗНАЧИТЕЛЬНО отличается от того изображения, которое вы видите на экране. Если у вас что-то не получается, то надо всегда смотреть именно ИСХОДНЫЙ код страницы, а не то, как вам ее рисует браузер. В браузере Internet Explorer исходный код можно посмотреть, выбрав в меню Вид - Просмотр HTML-кода.
Если у вас не работает яваскрипт, сформированный PHP скриптом, или html показывает не то, что вы хотите, то исправить эту проблему очень просто.
1. Сначала пишете нужный яваскрипт или html руками. Если у вас с этим проблемы - обратитесь в соотвествующий форум - по яваскрипту или html. PHP тут не при чём.
2. Сравниваете с тем, что получено из PHP
3. Вносите исправления в PHP скрипт, чтобы текст, отдаваемый им, не отличался от написанного руками.

<select name="name" onChange="location.href=this.options[selectedIndex].value">
<option value="index.php?id=1">1</option>
<option value="index.php?id=2">2</option>
<option value="index.php?id=3">3</option>
</select>

И посмотри, что у тебя
<select name=name location.href=this.options[selectedIndex].value size=1>
 
 Top
VladisOK
Отправлено: 12 Июня, 2007 - 13:26:48
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)

[+]


evgenijj пишет:
VladisOK пишет:

Может у меня каких-то кавычек не хватает

Очень даже может быть.
Третий раз сегодня даю эту ссылку: http://phpfaq[dot]ru/na_tanke
Цитата:

PHP формирует HTML код! И этот код ЗНАЧИТЕЛЬНО отличается от того изображения, которое вы видите на экране. Если у вас что-то не получается, то надо всегда смотреть именно ИСХОДНЫЙ код страницы, а не то, как вам ее рисует браузер. В браузере Internet Explorer исходный код можно посмотреть, выбрав в меню Вид - Просмотр HTML-кода.
Если у вас не работает яваскрипт, сформированный PHP скриптом, или html показывает не то, что вы хотите, то исправить эту проблему очень просто.
1. Сначала пишете нужный яваскрипт или html руками. Если у вас с этим проблемы - обратитесь в соотвествующий форум - по яваскрипту или html. PHP тут не при чём.
2. Сравниваете с тем, что получено из PHP
3. Вносите исправления в PHP скрипт, чтобы текст, отдаваемый им, не отличался от написанного руками.

<select name="name" onChange="location.href=this.options[selectedIndex].value">
<option value="index.php?id=1">1</option>
<option value="index.php?id=2">2</option>
<option value="index.php?id=3">3</option>
</select>

И посмотри, что у тебя
<select name=name location.href=this.options[selectedIndex].value size=1>


Ты прав братишка пиво ( хоть и жарко ) надо меньше пить Улыбка
Да работает, но не доконца - в адресной строке пишент так:

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
 
 Top
evgenijj
Отправлено: 12 Июня, 2007 - 13:29:38
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Издеваешься?

<select name="name" onChange="location.href=this.options[selectedIndex].value">
 
 Top
VladisOK
Отправлено: 12 Июня, 2007 - 13:41:36
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)

[+]


evgenijj пишет:
Издеваешься?

<select name="name" onChange="location.href=this.options[selectedIndex].value">


Нее всё нормально - работает, но не до конца не переводит name в id

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
 
 Top
evgenijj
Отправлено: 12 Июня, 2007 - 13:49:08
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT id, name FROM firm ";
  3. if($res = mysql_query($query))
  4. {
  5.   while($firm=mysql_fetch_array($res))
  6.   {
  7.     echo "<option value='index.php?id_firm=" . $firm["id"] . "'>" . $firm["name"] . "</option>";
  8.   }
  9. }
  10. else puterror("error");
  11.  
 
 Top
Стас
Отправлено: 12 Июня, 2007 - 14:14:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2007  


Помог: 0 раз(а)

[+]


evgenijj пишет:
firm

$firm вроде....
 
 Top
evgenijj
Отправлено: 12 Июня, 2007 - 14:18:30
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Стас пишет:
evgenijj пишет:
firm

$firm вроде....

Да, исправил.
 
 Top
VladisOK
Отправлено: 12 Июня, 2007 - 14:28:51
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)

[+]


evgenijj пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT id, name FROM firm ";
  3. if($res = mysql_query($query))
  4. {
  5.   while($firm=mysql_fetch_array($res))
  6.   {
  7.     echo "<option value='index.php?id_firm=" . $firm["id"] . "'>" . $firm["name"] . "</option>";
  8.   }
  9. }
  10. else puterror("error");
  11.  


неа вобще стопор - мне кажется надо в WHERE что-то замутить типо WHERE id='$name' - но так не работает
 
 Top
evgenijj
Отправлено: 12 Июня, 2007 - 14:41:05
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Тяжело с тобой. Это не тот код, который надо скопировать и вставить. Это код, который объясняет, КАК надо делать. Чтобы ты внимательно изучил, а потом сделал по аналогии.
В таблице firm у нас есть поля
id - уникальный идентификатор фирмы
name - ее название
PHP:
скопировать код в буфер обмена
  1.  
  2. 1 | ООО "Рога и копыта"
  3. 2 | ЗОО "Геркулес"
  4.  

Чтобы получить все фирмы, делаем запрос
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT id, name FROM firm WHERE 1 ORDER BY name";
  3. if ($res = mysql_query( $query ) )
  4. {
  5.   // Выводим содержимое тега <select>
  6.    while($firm=mysql_fetch_array($res))
  7.    {
  8.      echo "<option value='index.php?id_firm=" . $firm["id"] . "'>" . $firm["name"] . "</option>";
  9.    }
  10. }
  11.  

Переменная $firm["id"] содержит уникальный идентификатор текущей фирмы
Переменная $firm["name"] - название текущей фирмы

Если тебе нужны дополнительные данные о фирме, изменяем запрос
$query = "SELECT id, name, director FROM firm WHERE 1 ORDER BY name";
Соответственно, фамилия директора текущей фирмы будет доступна внутри цикла как значение переменной $firm["director"]
 
 Top
VladisOK
Отправлено: 12 Июня, 2007 - 15:19:21
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)

[+]


Спасибо за примеры. Но в данном случае всё работает, кроме "превращения" name в id.
Я понимаю, что сейчас уже проблема только в запросе где надо сформулировать, что поле NAME должно быть равно полю ID. Пробую - пока не получается
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB