PHP/MySQL - Praxistutorial 4 - Blättern
1. Die Abschnitte
2. NEIN!
Noch nicht klicken. Haltet eure Finger im Zaume, es fehlt noch was. Nämlich die SQL-Abfrage, nachdem die Daten per
GET übertragen worden sind. Die definiert ihr wie folgt innerhalb der else if ($_GET)
-Bedingung:
<?
$query = 'SELECT
headline
FROM
suche
WHERE
headline LIKE'."'%".urldecode($_GET['string'])."%'".'
ORDER BY
headline
LIMIT '.$_GET['limit'].', 10';
Erläuterung
Die Abfrage unterscheidet sich von der ersten nur durch zwei Dinge. Aus dem $_POST['searchstring']
ist jetzt ein urldecode($_GET['string'])
geworden. ['string']
weil ich tippfaul bin und
mir Schreibarbeit ersparen wollte, urldecode
, um die vorher umgewandelte Suchanfrage
wieder ins richtige Format zu bringen.
3. Verbesserungen
Schlichte Gemüter kämen jetzt auf die Idee, das gesamte Procedere der Datenbankabfrage aus der
if (!empty ($_POST['searchstring']))
-Bedingung einfach im Codeblock von else if ($_GET)
zu
wiederholen, also:
$result = mysql_query ($query) or die (mysql_error());
while ($row = mysql_fetch_assoc($result))
{
echo $row['headline'].'<br />';
}
Wir nicht!
Wir sind intelligent und versuchen unseren Code so klein wie möglich zu halten. Also schmeißt den oben aufgeführten Code aus dem entsprechenden Block raus! Tipp: macht das mit "Strg + X", dann könnt ihr den Schnipsel später wieder mit "Strg + V" einfügen. Und wo? Nun da, wo wir unser Navigationsmenü definiert haben.
if (!empty($num))
{
$result = mysql_query ($query) or die (mysql_error());
while ($row = mysql_fetch_assoc($result))
{
echo $row['headline'].'<br />';
}
...
}
4. Fazit
Schlappe 60 Zeilen Code, und das Problem ist erledigt. Ich hoffe, in Zukunft fragt keiner mehr von euch in einem Forum nach, wie so was geht. Und wie man das in eine komplette Volltextsuche einbauen kann, zeige ich euch demnächst in diesem Theater.