PHP.SU

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

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

> Найдено сообщений: 10
VladisOK Отправлено: 13 Июня, 2007 - 14:43:07 • Тема: Оператор сравнения • Форум: Программирование на PHP

Ответов: 3
Просмотров: 367
на странице выводиться сортировка по производителям вот таким образом:
================================ ==================
// start SORT

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>";

//end SORT
================================ ================
Тут нет ни каких вопросов - всё нормально.

На этой же странице выводится функция ограничения вывода на страницу товаров и организация переходов на другую страницу
код ( находится вверху страницы ):
================================ ================
$iTotalRecords = checkQuery("SELECT id FROM wares WHERE wares.lang='$lang' && wares.id_subtype='$id_subtype'");
$page = @$HTTP_GET_VARS['page']; if(!$page) $page = 0;
$iTotalPages = intval($iTotalRecords / $DEF['PICT_PER_PAGE']) + ($iTotalRecords % $DEF['PICT_PER_PAGE'] ? 1 : 0);
================================ ================
ниже на странице ( после выбора сортировки ) код, ограничения вывода на страницу товаров и организация переходов на другую страницу если страниц больше чем одна
================================ ================
if($iTotalPages > 1 ) {
echo "<div style='margin: 20px 20px 10px; padding: 4px 0px; border: 1px solid #DDDDDD; background-color: #FFFFFF; width: 100%;'align="center">n";
displayNav("index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype", $iTotalPages, $page, $DEF['PICT_PER_PAGE'], $iTotalRecords);
echo "</div>n";
================================ ===============

Здесь тоже всё нормально работает

Задача:
При нажатии на на сортировку по производителю
убрать "ограничения вывода на страницу товаров и организация переходов на другую страницу" и показать вывод всех товаров по выбранному производителю целиком

Решение:
В команде "оператора сравнения"
if($iTotalPages > 1 )
дописать сравнение типо:
if($iTotalPages > 1 && уже открыта страница сортировки по производителю и не надо запускать эту команду)

URL страницы до сортировки: index.php?lang=ru&p=4&id_type=1&id_subtype=213
URL страницы после сортировки: index.php?lang=ru&p=4&id_type=1&id_subtype=213&id_firm=27

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

Вывод:
что-то запутался - помогите пожалуйста

P.S. за ранее благодарен
VladisOK Отправлено: 13 Июня, 2007 - 13:35:49 • Тема: IF ELSE • Форум: Регулярные выражения

Ответов: 1
Просмотров: 243
на странице выводиться сортировка по производителям вот таким образом:
================================ ==================
// start SORT

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>";

//end SORT
================================ ================
Тут нет ни каких вопросов - всё нормально.

На этой же странице выводится функция ограничения вывода на страницу товаров и организация переходов на другую страницу
код ( находится вверху страницы ):
================================ ================
$iTotalRecords = checkQuery("SELECT id FROM wares WHERE wares.lang='$lang' && wares.id_subtype='$id_subtype'");
$page = @$HTTP_GET_VARS['page']; if(!$page) $page = 0;
$iTotalPages = intval($iTotalRecords / $DEF['PICT_PER_PAGE']) + ($iTotalRecords % $DEF['PICT_PER_PAGE'] ? 1 : 0);
================================ ================
ниже на странице ( после выбора сортировки ) код, ограничения вывода на страницу товаров и организация переходов на другую страницу если страниц больше чем одна
================================ ================
if($iTotalPages > 1 ) {
echo "<div style='margin: 20px 20px 10px; padding: 4px 0px; border: 1px solid #DDDDDD; background-color: #FFFFFF; width: 100%;'align="center">n";
displayNav("index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype", $iTotalPages, $page, $DEF['PICT_PER_PAGE'], $iTotalRecords);
echo "</div>n";
================================ ===============

Здесь тоже всё нормально работает

Задача:
При нажатии на на сортировку по производителю
убрать "ограничения вывода на страницу товаров и организация переходов на другую страницу" и показать вывод всех товаров по выбранному производителю целиком

Решение:
В команде "оператора сравнения"
if($iTotalPages > 1 )
дописать сравнение типо:
if($iTotalPages > 1 && уже открыта страница сортировки по производителю и не надо запускать эту команду)

URL страницы до сортировки: index.php?lang=ru&p=4&id_type=1&id_subtype=213
URL страницы после сортировки: index.php?lang=ru&p=4&id_type=1&id_subtype=213&id_firm=27

Вывод:
что-то запутался - помогите пожалуйста

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


VladisOK Отправлено: 12 Июня, 2007 - 16:18:43 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
Большое спасибо evgenijj - наверно твой код тоже правильный ( не успел проверить )
Но я сделал ( мне так кажеться проще ) и всё заработало -
проблемка оказалась совсем простая:
================================ ================
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>";
================================ ================================ ==========
VladisOK Отправлено: 12 Июня, 2007 - 15:19:21 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
Спасибо за примеры. Но в данном случае всё работает, кроме "превращения" name в id.
Я понимаю, что сейчас уже проблема только в запросе где надо сформулировать, что поле NAME должно быть равно полю ID. Пробую - пока не получается
VladisOK Отправлено: 12 Июня, 2007 - 14:28:51 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
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' - но так не работает
VladisOK Отправлено: 12 Июня, 2007 - 13:41:36 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
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
VladisOK Отправлено: 12 Июня, 2007 - 13:26:48 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
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
VladisOK Отправлено: 12 Июня, 2007 - 13:16:39 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
evgenijj пишет:
VladisOK пишет:

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

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


Может у меня каких-то кавычек не хватает
VladisOK Отправлено: 12 Июня, 2007 - 13:08:48 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
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>";
================================ ====
Так тоже не работает
VladisOK Отправлено: 12 Июня, 2007 - 12:33:37 • Тема: Организация линка • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 167
Задача стоит следующая:

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

Действия:
Создана таблица:
================================ =====
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. За ранее благодарен

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB