hmm, das ganze mal etwas bereinigt auf die Funktion die mit diesem Formular überhaupt möglich ist (kein Geschlecht, PLZ usw.) funktioniert das doch ohne Probleme...
- Code: Select all
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Sorttest</title>
</head>
<body>
<form method="post" action="test.php" name="sortieren">
<table border="1" width="620">
<tr>
<td colspan="3" nowrap="nowrap">
<i><b>Weitere Sortierung:</b></i>
</td>
</tr>
<tr>
<td>
Sortierung
</td>
<td>
<select name="sort" size="3">
<option value="0" selected>(keine)
<option value="1">Familienstand
<option value="2">Nationalität
</select>
</td>
<td align="center" valign="middle">
<input name="Schalter" type="submit" value="OK">
</td>
</tr>
</table>
<?php
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);
$zusatz_sort = 0;
if (!empty($_POST['sort'])) {
switch ($_POST['sort']) {
case 1:
$sortieren = 'ORDER BY `Familienstand`';
$zusatz_sort = 1;
break;
case 2:
$sortieren = 'ORDER BY `Nationalität`';
$zusatz_sort = 1;
break;
}
}
/* Datenbankserver - In der Regel die IP */
$db_server = 'localhost';
/* Datenbankname */
$db_name = 'datenbank';
/* Datenbankuser */
$db_user = 'root';
/* Datenbankpasswort */
$db_passwort = '';
/* stellt Connect zu Datenbank her */
$db = @mysql_connect($db_server, $db_user, $db_passwort)
or die('<p><b>Konnte keine Verbindung zur Datenbank herstellen:</b><br>'.mysql_error());
$db_check = mysql_select_db($db_name, $db)
or die('<p><b>Konnte die Datenbank nicht auswählen:</b><br>'.mysql_error());
$sql = "SELECT * WHERE `nr` <> '' ";
if (1 == $zusatz_sort) {
$sql .= $sortieren;
}
echo '<input type="hidden" name="sql" value="'.$sql.'">'."\n";
echo '<p>_____ '.$sql.' ____'."\n";
?>
</form>
</body>
Diese Zeile:
- Code: Select all
$sql = "SELECT * WHERE `nr` <> '' ";
solltest du aber nochmal überdenken. `nr`ist doch bestimmt ein INT-Feld? Wenn das auch noch der Primärindex ist, dürfte das eh nicht leer sein. Gäbe es also 3 Alternativen:
- Code: Select all
$sql = "SELECT * WHERE `nr` ";
$sql = "SELECT * WHERE `nr` <> 0 ";
$sql = "SELECT * WHERE `nr` IS NOT NULL ";
Eine Frage zu dieser Zeile:
- Code: Select all
echo" <input type=\"hidden\" name=\"SQL\" value=\"$SQL\">";
Für was brauchst du die verwendete SQL-Abfrage in einem Hidden-Feld?