Forum: NOF - Tutorials (185 anschauliche Tutorials zum Lesen und Nacharbeiten) > PHP und MySQL - Tutorials und Kurzanleitungen

PHP -> Suche einrichten (Suche in der MySQL Datenbank)

(1/2) > >>

Hans K.:
Wenn wir mit der PHP und MySQL -> Erstellung von dynamischen Seiten eine größere Datenbank aufgebaut haben, ist eine Suche hilfreich.

Seiten ohne eine Datenbank haben in aller Regel das Problem, dass eine seiteninterne Suche kaum zu realisieren ist. Als Lösung greift man auf Scripts wie planetSearch zu.

Bei einer MySQL Datenbank jedoch haben wir die Möglichkeit nach jedem Eintrag zu suchen und auszugeben. Wir können Bedingungen oder Einschränkungen verwenden, um die Suche so zu gestalten, wie wir die Ergebnisse erwarten.

Dabei ist die Realisierung mit wenigen Handgriffen durchführbar.

Hans K.:
Na der Stelle wo die Suche eingebaut werden sollen, erstellen wir ein Textfeld. In den Texteigenschaften den Button HTML betätigen (das Textfeld aufziehen, an anderer Stelle ins Layout klicken und dann das Textfeld anklicken -> dann ist das Eigenschaftsfenster zu sehen).

Vor dem Tag ist der Code einzugeben:


--- Code: PHP ---<script type="text/javascript"><!--function __fv5_Mopedsuche(form) { var args = {"Mopedsuche":[["NOF_isLengthInRange", ['3', '50'], "Bitte geben Sie mehr als 2 Zeichen zur Suche ein.", "", ""], ["NOF_isRequired", [''], "Bitte geben Sie mehr als 2 Zeichen zur Suche ein.", "", ""], ["NOF_isLengthInRange", ['3', '50'], "Bitte geben Sie mehr als 2 Zeichen zur Suche ein.", "", ""], ["NOF_isRequired", [''], "Bitte geben Sie mehr als 2 Zeichen zur Suche ein.", "", ""]] }; return NOF_validateForm(form, args, true, null,'Bitte korrigieren Sie die folgenden Fehler:');}//--></script><form name="Mopedsuche" action="./suche.php" style="display:inline;" method="GET" onSubmit="return __fv5_Mopedsuche(this)"> <input id="Eingabefeld1" type="text" name="Mopedsuche" style="background:none; border: 1px solid #ff0000" value="Hier das Motorrad eingeben" onfocus="this.value=''" size="20" maxlength="80"> <input type="submit" value="Suche starten" id="Schaltflaeche1" >   </form><!--
Im ersten Teil des Codes werden Plausibilitäten eingefügt, im zweiten Teil des Codes (nach dem //-->) wird das Such-Formular erstellt.

Nach dem Tag ist noch folgendes einzutragen:

--- Code: HTML5 ----->
Durch die Eingabe der Klammern wird ein Zeilenumbruch verhindert, der das Design stören würde.

Hans K.:
Nun ertsellen wir eine neue Seite, welche den Namen suche trägt.

Diese ist auf PHP umzustellen:
Umstellung der Seite auf PHP

Dann wird die Verbindung zu der MySQL Datenbank hergestellt.
Verbindung zur MySQL Datenbank herstellen

Hans K.:
Nun wird der Code in den Layout-Eigenschaften ergänzt:


--- Code: PHP ---<?phpinclude("./html/datenbank.php"); session_start(); if (empty($_GET['Mopedsuche']) OR $_GET['Mopedsuche'] == " ") {} else {$Suche = $_GET['Mopedsuche'];} $sql="SELECT ID, Modell FROM Moped WHERE Modell LIKE '%".$Suche."%' ORDER BY Modell ASC";$result = mysql_query($sql); ?>
Mit dem GET (if (empty) prüfen wir zunächst, ob überhaupt eine Eingabe erfolgt ist. Sollte die Übermittlung aus der Suche erfolgt sein, übernehmen wir die Angabe in unsere Variable $Suche.
Dann erfolgt eine Abfrage in unserer Datenbank, wobei wir das Modell einschränken (nur nach dem suchen, was in der Variablen $suche enthalten ist).

Da wir nicht wissen, ob ein User mit der Herstellerbezeichnung beginnen würde, oder nur mit der Modellbezeichnung, arbeiten wir mit dem Zeichen %.

'%".$Suche."%' bedeutet, nach der Eingabe suchen, auch wenn etwas vor oder nach der Eingabe steht.

Hans K.:
Nun benötigen wir noch die Anzeige der Ergebnisse. Wir erstellen nun exakt den gleichen Code, wie wir ihn bereits in PHP und MySQL -> Erstellung einer automatisch generierten Linkliste eingesetzt haben (hier würde sich nun ein include anbieten ;) ).

Wir erstellen ein Textfeld und gehen in die Texteigenschaften. Den Button HTML anklicken und vor dem Tag den Code eingeben:

--- Code: HTML5 ---<?php while ($row = mysql_fetch_array($result)) {echo "<img src="./Mopedbilderklein/Bild".$row["ID"].".jpg""." ALT="". $row["Modell"]."" TITLE="". $row["Modell"]."">";echo "<a href="/Test/test.php?mopedid=". $row["ID"]. "">". $row["Modell"]. "</a><br>"; }?> <!--
Nach dem Tag wird noch das eingegeben:

--- Code: HTML5 ----->

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln