Tworzenie zapytania na podstawie wyboru select

0

Witam,

Chciałbym stworzyć formularz, który na podstawie wybranego selecta, będzie mi wyświetlał inaczej posortowane rekordy. Stworzyłem prosty formularz:

<form action="index.php" method="get">
	<select>
		<option name="Sortuj ASC" action="get">Sortuj ASC</option>
		<option name="Sortuj DESC" action="get">Sortuj DESC</option>
	</select>
	<input type="submit" name="submit" value="Zastosuj">
</form>
 

oraz skrypt:

<?php
require_once 'connect.php';

try
   {
      $pdo = new PDO($pol, $user, $pass);
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      if(isset($_GET['Sortuj ASC']))
	  {
      $stmt = $pdo->query('SELECT idusers, login, email, password, date FROM users ORDER BY idusers ASC');
      echo '<ul>';
      foreach($stmt as $row)
      {
          echo '<li>'.$row['idusers'].': '.$row['login'].': '.$row['email'].': '.$row['password'].': '.$row['date'].'</li>';
      }
      $stmt->closeCursor();
      echo '</ul>';
   }
	else if(isset($_GET['Sortuj DESC']))
	{
		$stmt = $pdo->query('SELECT idusers, login, email, password, date FROM users ORDER BY idusers DESC');
      echo '<ul>';
      foreach($stmt as $row)
      {
          echo '<li>'.$row['idusers'].': '.$row['login'].': '.$row['email'].': '.$row['password'].': '.$row['date'].'</li>';
      }
      $stmt->closeCursor();
      echo '</ul>';
	}
   }
   catch(PDOException $e)
   {
      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   }

?>
 

Niestety przeglądarka nic nie zwraca. Znacie może jakiś przykład jak to zrobić?

0

Po pierwsze option tag nie ma atrybutu action.
http://www.w3schools.com/tags/tag_option.asp

Po drugie DRY
Zauważ, że masz dwa razy ten sam kod, jedyna różnica to DESC. Przerób go do czegoś takiego (napisze pseudokodem):

// spróbuj się połączyć z bazą
// Jeżeli połączenie się nie powiodło powiadom o błędzie i zakończ działanie skryptu
// Przygotuj podstawowy stmt => SELECT idusers, login, email, password, date FROM users 
// Sprawdź czy ustawiony jest parametr ordery_by, jeżeli jest to doklej tam odpowiednio ORDER BY idusers ASC lub DESC (byle nie wartość tego parametru bo SQL Injection!!!)
// Pobierz rekordy
// Zaprezentuj wynik

Nie podam Ci gotowego rozwiązania dlatego, że w sieci jest tyle materiałów jeżeli chodzi o to, że głowa mała i na bank sobie dasz rade.

1 użytkowników online, w tym zalogowanych: 0, gości: 1