Hauptmenü

Untermenü

PHP/MySQL - Praxistutorial 4 - Erster Aufruf

1. Die Abschnitte

2. Vorbereitung

Öffnet nun die Datei suche.php und passt die Zugangsdaten zu eurem MySQL-Server an, wenn ihr das noch nicht getan habt. Dann ruft sie im Browser auf. Sieht nicht schön aus, aber darum geht hier auch nicht. Nehmt als Suchbegriff weiterhin php.

Als erstes wollen wir verhindern, dass ohne Absenden des Formulars schon eine "wilde" Abfrage ohne Inhalt geschickt wird. Das geht ganz einfach mit:


if (!empty ($_POST['searchstring']))
{
  ...
}

Nun wollen wir einmalig die Anzahl aller in Frage kommenden Datensätze erfahren. Den entsprechenden Wert schleifen wir anschließend per GET mit durch. Also packen wir den folgenden Code in die oben beschriebene Bedingung:


$query 'SELECT 
            COUNT(id) 
          FROM 
            suche 
          WHERE 
            headline LIKE'."'%".$_POST['searchstring']."%'";
$result mysql_query ($query) or die (mysql_error());
$found mysql_fetch_row ($result);

Warum arbeitet der nicht mit mysql_num_rows, werden sich jetzt einige Fragen. Na ja, ich denke, dass obige Abfrage und deren Auswertung wesentlich performanter ist. Wer mich vom Gegenteil überzeugen kann, bitte sehr, einfach eine Mail schicken, dann korrigiere ich das gerne.

Ach übrigens, wie ihr den entsprechenden Wert von $found aufdröselt, macht ihr mal schön selber. Ihr sollt ja auch zu eigenständigem Denken erzogen werden (Stichwort print_r). Und diesem Wert schreibt ihr in die Variable $num unterhalb von $found!

3. Die erste Ausgabe

Ist überhaupt kein Problem, da wir ja alle benötigten Parameter kennen:


$query 'SELECT 
            headline 
          FROM 
            suche 
          WHERE 
            headline LIKE'."'%".$_POST['searchstring']."%'".'
          ORDER BY 
            headline 
          LIMIT 0, 10';
$result mysql_query ($query) or die (mysql_error());

while ($row mysql_fetch_assoc($result))
{
  echo $row['headline'].'<br />';
}

Erläuterung

Dass obiger Code natürlich auch in die Bedingung gehört, versteht sich wohl von selbst. Ansonsten dürfte wohl alles klar sein. Der Suchbegriff ist bekannt, die Anzahl aller gefundenen Datensätze auch und den Startwert für die Suche können wir eh auf 0 festlegen, da es ja gerade erst losgeht.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt