Здравствуйте. У меня такая задача: "Добавьте возможность сортировки выведенных в таблице данных по возрастанию и убыванию (сортировку производить кликом по заголовку столбца)". Другие задачи я уже реализовал: Создать страницу с формой. Форма должна содержать текстовые поля (<input type="text">),переключатели (<input type="radio"), флажки (<input type="checkbox"), список (<select>...</select>),поле для загрузки файла (изображения) Создайте скрипт, обрабатывающий данные, посылаемые формой. Данные должны записываться в файл. Создайте скрипт, читающий загруженные данные из файла и выводящий их в окно браузера. Отобразить данные в виде таблицы. Загруженные файлы выводить в виде картинки. В итоге получилось вот это Как сделать чтобы столбцы "Имя" и Фамилия имели значения Фамилия asc и desc В одной ссылке. То есть как в PhpMyAdmin тыкнул на заголовок столбца, он отсортировал по убыванию, тыкнул еще раз отсортировал по возрастанию. Код самого скрипта PHP: <?php setcookie(da,$_GET["field"],time()+5230); include("Sravnenie.php"); if (sizeof ($_POST)>4){ // Проверяем загружен ли файл if(is_uploaded_file($_FILES["photo"]["tmp_name"])) { // Если файл загружен успешно, перемещаем его // из временной директории в конечную move_uploaded_file($_FILES["photo"]["tmp_name"], "uploads/".$_FILES["photo"]["name"]); } if (is_array($_POST)); foreach ($_POST as $key => $value) { if ($key=='submit') continue; // echo "$value<br>"; if (is_array($value)) { foreach ($value as $value1) { // echo "$value1<br>"; $string.=$value1; $string.=' '; } } else $string.=$value; $string.=','; } $string.='\uploads\\'.$_FILES['photo']['name']; file_put_contents('list.txt',$string."\r\n",FILE_APPEND); } // ==========ВЫвод========================================= $mass=file('list.txt'); foreach($mass as $key=>$str) { $mass1[]=explode(',',$str); } echo '</a><a href="form.php?field=fam_down">Фамилия asc</a><br>'; echo ' <a href="form.php?field=fam_up">Фамилия уб</a><br>'; echo '<a href="form.php?field=name_down">Имя asc</a><br>'; echo ' <a href="form.php?field=name_up">Имя уб</a><br>'; //============================================ if (isset ($_GET["field"])) { $field=$_GET["field"]; // echo $field; } else { $field=$_COOKIE["da"]; } //============================================ switch ($field): case "fam_down": usort($mass1, "fam_down"); break; case "fam_up": usort($mass1, "fam_up"); break; case "name_down": usort($mass1, "name_down"); break; case "name_up": usort($mass1, "name_up"); break; endswitch; //============================================ echo '<table border=1>'; echo '<tr>'; echo '<td>Фамилия </td>'; echo '<td>Имя </td>'; echo '<td>Пол </td>'; echo '<td>Год</td>'; echo '<td>Профессия</td>'; echo '<td>Фото </td>'; echo '</tr>'; //============================================ foreach($mass1 as $key=>$mass) { echo '<tr>'; foreach($mass as $k=>$X) { if ($X==''||$X=='Выберите Год'||trim($X)=="\uploads\\") echo '<td>Не указано</td>'; else { echo '<td>'; if ($k==5) { str_replace('lab4.ru\uploads\\','',$X); echo '<img src="'.$X.'" style="width:100">'; } else { echo $X; } echo '</td>'; } } echo '</tr>'; } echo '</table>'; ?> Сравнение букв для сортировки PHP: <pre> <?php //===== function fam_down($a,$b) { if($a[0]==$b[0]) return 0; return ($a[0]<$b[0])?-1:1; } //===== function fam_up($a,$b) { if($a[0]==$b[0]) return 0; return ($a[0]<$b[0])?1:-1; } //===== function name_down($a,$b) { if($a[1]==$b[1]) return 0; return ($a[1]<$b[1])?-1:1; } //===== function name_up($a,$b) { if($a[1]==$b[1]) return 0; return ($a[1]<$b[1])?1:-1; } //===== ?> </pre>
Если я правильно понял задачу, можно при нажатии создавать переменную и устанавливать ей значение, например, "up" и "down" в зависимости от типа сортировки. А потом проверять, при клике, если up - делать down. --- Добавлено --- Можно при нажатии на заголовок таблицы отправлять POST запрос, а лучше GET, Чтоб сохранялся порядок сортировки (Созздавать ссылку на подобии "http://mySite.pzd?sort=name&tupe=up"), где sort - столбец, по которому сортируем, а type - порядок сортировки (По возрастанию, или убыванию).
Да, я думаю в этом направление, получается a href="http://mySite.pzd?sort=name&tupe=up">Фамилия /a, но если я нажму опять на неё, то тип сортировки не изменится. а Ссылка должна быть одна. Про бывал, чтобы по нажатию на ссылку скрипт складывал число, и от зависимости четное или нечетное менялся тип сортировки, но ничего не вышло
Н так ты в зависимости от настоящей сортировки ссылку подставляй. Если сейчас up, то делай "http://mySite.pzd?sort=name&tupe=down" и наоборот.