Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка... Опять старая тема 
:(
    Опции темы
krulik
Дата 2.2.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 14.1.2006
Где: Украина, Житомир

Репутация: 2
Всего: 4



Есть страничка на ней таблица с данными взятыми из БД. Таблица имеет следующий вид:
user posted image


Вот полный код этой станицы:
Код

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251"> 
</head>
<body>
<?php
$link=mysql_connect("localhost","root","");
$db=mysql_select_db("krulik",$link);
$MyQuery='SELECT prepod.name, proekt.date, endp.name, startp.name FROM endp INNER JOIN (startp INNER JOIN (prepod INNER JOIN proekt ON prepod.id = proekt.prid) ON startp.id = proekt.EndPara) ON endp.id = proekt.Startpara ORDER BY prepod.name';

$result=mysql_query($MyQuery,$link);
print "<table border=1 cols=4 align=center>";
print "<tr><th  rowspan=2>Фимилия<th rowspan=2>Дата<th colspan=2>Время занятий</tr>";
print "<tr><th width=100>Начало<th width=100>Конец</tr>";
while ($row=mysql_fetch_array($result,MYSQL_BOTH))
{
    print "<tr><td width=150><i>$row[0]</i></td><td width=100>$row[1]</td><td width=50>$row[2]</td><td>$row[3]</td></tr>";
}
print "</table>";
mysql_close($link);
?>
</body>
</html>


Теперь собственно говоря вопрос.
Как мне организовать возможность сортировки по полям Фамилия или Дата. Я такое часто видел на разных форумах. Кога например нажимаешь на Фамилия таблица сортируется по возрастанию нажимаешь второй раз уже сортировка оп убыванию.
В начале у меня была глупая идея создать отдельные странички. Но ведь это тупо!
Фактически будет изменятся только окончание запроса к БД (там где ORDER BY):
Код

'SELECT prepod.name, proekt.date, endp.name, startp.name FROM endp INNER JOIN (startp INNER JOIN (prepod INNER JOIN proekt ON prepod.id = proekt.prid) ON startp.id = proekt.EndPara) ON endp.id = proekt.Startpara ORDER BY prepod.name';


Теперь кто мне скажет как это организовать? Если что непонятно объяснил спрашивайте!
И учтите то что я новичек!
ЗЫ: поиском пользовался! Но у меня ниче не получилось реализовать.

Это сообщение отредактировал(а) krulik - 2.2.2006, 13:27
--------------------
Каждый день несет в себе частицу вечности (Паоло Коэльо)Если вам плюют в спину, значит вы в переди! (Конфуций)Все, что имеет форму, может исчезнуть в одно мгновение (Харуки Мураками)
PM MAIL ICQ   Вверх
Ignat
Дата 2.2.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Ух...
Цитата(krulik @ 2.2.2006, 13:21 Найти цитируемый пост)

Фактически будет изменятся только окончание запроса к БД (там где ORDER BY):

Если знаешь ответ на вопрос, зачем тогда спрашиваешь?
Запрос при изменении ORDER BY дает нужный результат?


--------------------
Теперь при чем :P
PM   Вверх
HalkaR
Дата 2.2.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Код

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251"> 
</head>
<body>
<?php
$link=mysql_connect("localhost","root","");
$db=mysql_select_db("krulik",$link);
$field = 'prepod.name';
$order = 'ASC';
if(isset($_GET['field']) && $_GET['field'] == 'name'){$field = 'prepod.name';}
if(isset($_GET['field']) && $_GET['field'] == 'date'){$field = 'proekt.date';}
if(isset($_GET['order'])&& $_GET['order'] == 1){$order='DESC';}
$MyQuery='SELECT prepod.name, proekt.date, endp.name, startp.name FROM endp INNER JOIN (startp INNER JOIN (prepod INNER JOIN proekt ON prepod.id = proekt.prid) ON startp.id = proekt.EndPara) ON endp.id = proekt.Startpara ORDER BY prepod.name';
$result=mysql_query($MyQuery,$link);
print "<table border=1 cols=4 align=center>";
print "<tr><th  rowspan=2><a href='?field=name".($field == 'prepod.name' && #order=='DESC' ? "&order=0" : "&order=1").">Фимилия</a><th rowspan=2><a href='?field=date".($field == 'proekt.date' && #order=='DESC' ? "&order=0" : "&order=1").">Дата<th colspan=2>Время занятий</tr>";
print "<tr><th width=100>Начало<th width=100>Конец</tr>";
while ($row=mysql_fetch_array($result,MYSQL_BOTH))
{
    print "<tr><td width=150><i>$row[0]</i></td><td width=100>$row[1]</td><td width=50>$row[2]</td><td>$row[3]</td></tr>";
}
print "</table>";
mysql_close($link);
?>
</body>
</html>

Добавлено @ 14:58
Что-то вроде этого. Писал прям здесь поэтому могут быть ошибки.
PM MAIL   Вверх
krulik
Дата 2.2.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 14.1.2006
Где: Украина, Житомир

Репутация: 2
Всего: 4



Есть пару вопросов к HalkaR. Если не тяжело объясни суть следующих строк (или хотябы ссылку на место где можно прочитать):
Код

if(isset($_GET['field']) && $_GET['field']

Для чего оператор И используется?

Дальше я немогу разобраться с этой записью:
Код

<a href='?field=name".($field == 'prepod.name' && #order=='DESC' ? "&order=0" : "&order=1").">

Первую часть:
Код

<a href='?field=name

эт понятно. А вот дальше темный лес. И там наверно гдето с кавычками проблема.
Если не тяжело объясни суть а с ковычками я тогда сам разберусь!

Спасибо за помощь!

Это сообщение отредактировал(а) krulik - 2.2.2006, 16:05
--------------------
Каждый день несет в себе частицу вечности (Паоло Коэльо)Если вам плюют в спину, значит вы в переди! (Конфуций)Все, что имеет форму, может исчезнуть в одно мгновение (Харуки Мураками)
PM MAIL ICQ   Вверх
Ignat
Дата 2.2.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Цитата(krulik @ 2.2.2006, 15:02 Найти цитируемый пост)

Вопрос первый зачем тему перенесли в MySQL если это сугубо по РНР!!!!!

Действительно, зачем?

Цитата(krulik @ 2.2.2006, 15:02 Найти цитируемый пост)

Я понятно изложил суть вопроса? Вопросов по SQL у меня никаких нету!!!

Зачем нервничать? Если я увидел вопрос в разделе MySQL, то и ищу проблемы в SQL-коде.


Добавлено @ 15:26
Перемещаю в PHP.


--------------------
Теперь при чем :P
PM   Вверх
HalkaR
Дата 2.2.2006, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Цитата(krulik @ 2.2.2006, 15:02 Найти цитируемый пост)

Есть пару вопросов к HalkaR. Если не тяжело объясни суть следующих строк (или хотябы ссылку на место где можно прочитать):
Выделить всёкод PHP
1:

if(isset($_GET['field']) && $_GET['field']

Для чего оператор И используется?
посмотреть можно на http://www.php.net/manual/ru/, там даже поиск есть. && используется для того чтоб сначал проверить установленно ли значение перменной, а только потом его проверять (имхо там правельнее).
Цитата(krulik @ 2.2.2006, 15:02 Найти цитируемый пост)

Дальше я немогу разобраться с этой записью:
Выделить всёкод PHP
1:

<a href='?field=name".($field == 'prepod.name' && $order=='DESC' ? "&order=0" : "&order=1").">



Код

"<a href='?field=name".($field == 'prepod.name' && $order=='DESC' ? "&order=0" : "&order=1").">"

Код

($field == 'prepod.name' && #order=='DESC' ? "&order=0" : "&order=1")
это выражение добавлет в строку "&order=0" если значение перменной field = prepod.name и order = DESC и 1 в противном случае.
Извеняюсь, там была опечатка, не #order а $order.



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.