Hauptmenü

Untermenü

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.

zurück zum vorherigen Abschnitt