Hallo,
eigentlich habe ich 2 Fragen zu PHP, aber das hätte nicht alles ich die Überschrift gepasst.
Frage 1
Ich erlerne gerade PHP und MySQL. Dafür habe ich in einer Datenbank eine Tabelle über Internet Radiostationen angelegt, mit Sendername, Land, Kontinent, StreamURL, Genre usw. Über ein Auswahlmenü lässt sich die Tabelle nach Sendernamen, Land oder Kontinent sortieren. Das klappt soweit auch. Damit aber nicht mehr als 20 Radiostationen auf einer Seite erscheinen, habe ich unter Zuhilfenahme eines Buches die Seiten paginiert (Steige da aber noch nicht so richtig durch). Wenn ich nun die Radiostationen nach Land oder Kontinent sortiere, dann klappt das zwar auf der ersten Seite aber auf der zweiten Seite ist wieder alles nach den Sendernamen sortiert.
Was muss ich machen, damit die Sortier – Auswahl auch an die folgenden Seiten übergeben wird?
Hier ist der PHP Code
<?php
$sortieren = $_POST['sortieren'];
if($sortieren == "Sendername") {
$ergebnis = $mysqli -> query("SELECT * FROM sender ORDER BY sendername LIMIT $start, $anzahl_pro_seite");
} elseif($sortieren == "Kontinent") {
$ergebnis = $mysqli -> query("SELECT * FROM sender ORDER BY kontinent LIMIT $start, $anzahl_pro_seite");
} elseif($sortieren == "Land") {
$ergebnis = $mysqli -> query("SELECT * FROM sender ORDER BY land LIMIT $start, $anzahl_pro_seite");
}
?>
Frage 2
Wie muss die Fall – Entscheidung formuliert werden?
Natürlich soll man Radiosender über ein Eingabeformular finden können. Auch das funktioniert. Allerdings möchte ich, wenn es keinen Sender mit dem entsprechenden Namen gibt, das ein Text wie z. B. "Leider kein Sender mit diesem Namen zu finden" erscheint. Dafür habe ich in der Fall – Entscheidung folgende 2 Dinge ausprobiert:
if($zeile == !array()) {
echo "Leider gab es keinen Sender mit dem Namen";
}
Das klappt nicht.
if($zeile == false) {
echo "Leider gab es keinen Sender mit dem Namen";
}
Das klappt auch nicht.
if($zeile == null) {
echo "Leider gab es keinen Sender mit dem Namen";
}
War auch 'ne Nullnummer :)
Hier ist der komplette Code dazu:
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>Sendername eingeben:</label><br />
<input type="text" name="suchbegriff"/><br /><br />
<input type="submit" name="gesendet"/>
</form>
<?php
if(isset($_POST['gesendet'])) {
$suchbegriff = htmlspecialchars($_POST['suchbegriff']);
echo $suchbegriff . "<br />";
$db = mysqli_connect("localhost", "root");
mysqli_set_charset($db, "utf8");
mysqli_select_db($db, "radio2");
$sql = "SELECT * FROM sender WHERE sendername LIKE '%$suchbegriff%' ";
$erg = mysqli_query($db, $sql);
while($zeile = mysqli_fetch_assoc($erg)) {
echo $zeile['sendername'] . " ". $zeile['kontinent'] ." ". $zeile['land'] . " ". $zeile['ort'] . " ". $zeile['genre'] . " ". $zeile['streamurl'] . "<br /><br />" ;
}
if($zeile == !array()) {
echo "Leider gab es keinen Sender mit dem Namen";
}
}
?>
</body>
Danke für's lesen.