kostenloser Webspace werbefrei: lima-city


Homepage-Suche | SQL & TXT | incl. Seitenwechsel

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    gheddo

    gheddo hat kostenlosen Webspace.

    Hier geht es darum, wie man sich eine Suche f?r seine Homempage programmiert.
    UPDATED - 05.01.2004

    Hallo WMP-User,
    Worum geht es hier? Dieses Thema wird regelm??ig im Forum behandelt.
    Hier erkl?re ich euch nun, wie ihr eine Suche f?r eure Homepage machen k?nnt.

    Dieses Tutorial eignet sich dazu, eine SQL-Datenbank und TXT-Dateien zu durchsuchen.

    Vorraussetzung:
    Kenntnisse in PHP

    Was wird ben?tigt?
    - Wenn eine SQL-Datenbank durchsucht werden soll, ben?tigt ihr nat?rlich eine SQL Datenbank :o)
    - Wenn TXT-Dateien durchsucht werden sollen, ben?tigt ihr die zu durchsuchenden Dateien :o)

    Welche Datein werden erstellt?
    - index.html od. index.php // Suchformular
    - suchen.php // Such-Seite
    - config.php // Konfigurationseinstellungen
    - ergebnis.php // Ergebnisausgabe
    - txtsuche.php // Datei die die txt Datein durchsucht

    ?nderungen:
    12.01.2003 - Erste Version nur SQL
    28.01.2003 - Script um TXT Suche erweitert, und daf?r s?mtliche Datein ver?ndert
    05.01.2004 - ergebnis.php hatte eine } zuviel !

    Erkl?rungen zum Code:
    Weitere Erkl?rungen zum Code sind direkt im Code und sollten eigentlich selbsterkl?rend sein!
    Der PHP Code ist zur besseren ?bersicht etwas auseinander geschrieben.

    - - - - - - - - - - - - - - - - - - - - - - - -

    index.php

    Zun?cht erstellen wir uns ein Formular mit einem Textfeld und einem Submit Button.
    Zudem wollen wir unsere User auch die M?glichkeit bieten, eine genaue oder ungenaue Suche zu machen.
    (Bei Texten emfiehlt es sich den Punkt ungenau herauszunehmen, da dieser eh nichts bringt)
    Dies machen wir am besten mit zwei Radiobuttons.

    <form method="post" action="suchen.php">
    <input name="suchwort">
    <input type="submit">
    <br>Genau <input type="radio" name="stat" value="0" checked>
    <br>Ungenau<input type="radio" name="stat" value="1">
    </form>

    - - - - - - - - - - - - - - - - - - - - - - - -

    config.php

    In der config.php geben wir alle Vabialben Daten an, die wir f?r die Suche ben?tigen

    <?php
    $sql = "1"; // SQL Datenbank durchsuchen? 0-Nein / 1-Ja
    $txt = "1"; // TXT Dateien Suchen? 0-Nein / 1-Ja

    $sqlanz = "5"; // Anzahl der Ergebnisse pro Seite

    $server = "localhost"; // Server Host
    $user = "Home"; // User od. Benutzer
    $pass = "pass"; // Passwort
    $dn = "dbname"; // Datenbank-Name

    $tabelle= "tabelle"; // SQL Tabelle die durchsucht werden soll
    $spalte = "spaltenname"; // SQL Spalte die durchsucht werden soll

    // Verbindung zur SQL-Datenbank herstellen
    $conn = @mysql_connect($server, $user, $pass);
    $verbindung = @mysql_select_db ( $dn );
    ?>
    - - - - - - - - - - - - - - - - - - - - - - - -

    suchen.php
    In der suchen.php wird nun die Suche gestartet.

    <?php
    include ("config.php"); // Config.php einf?gen

    echo "Suche nach <b>$suchwort</b> wurde gestartet<br>";

    if($txt == 1) include ("txtsuche.php"); // Abfrage ob nach txt Dateien gesucht wird
    if($sql == 1) // Abfrage ob ne SQL Datenbanjk durchsucht werden soll
    {
    if ($stat == 0) { // Hier wird die genaue Suche gestartet
    $result = mysql_query("SELECT * from $tabelle WHERE $spalte = '$suchwort'");
    include ("ergebnis.php");
    }
    else if ($stat == 1) { // Hier wird die ungenaue Suche gestartet
    $result = mysql_query("SELECT * from $tabelle WHERE $spalte LIKE '%$suchwort%'");
    include ("ergebnis.php");
    }
    ?>
    - - - - - - - - - - - - - - - - - - - - - - - -

    txtsuche.php
    Um die TXT Suche zu verwirklichen, habe ich folgenden Code angepasst
    [1]

    <?php

    $wort = strtolower(trim($suchwort));
    if($wort)
    {
    function read_dir($dir=".",$endung=".txt")
    {
    settype($dateinamen,"array");
    if(!is_dir($dir)) return false;
    $verzeichnis = dir($dir);
    while($datei = $verzeichnis -> read())
    {
    if($datei[0] != "." && substr($datei,strlen($endung)*(-1)) == $endung)
    {
    $dateinamen[] = "$datei";
    }
    }
    $verzeichnis->close();
    sort($dateinamen);
    return $dateinamen;
    }

    $dateinamen = read_dir("."); // Dateiname auslesen
    $anz = count($dateinamen); // Anzahl der Datein ermitteln

    for($i=0;$i<$anz;$i++)
    {
    $name = $dateinamen[$i];
    $datei = "$name";
    $start = 0;
    $fp = fopen($datei,"r"); // Datein lesen

    while(!feof($fp))
    {
    $zeile = strtolower(trim(fgetss($fp,1024)));
    if(strstr($zeile,$wort))
    {
    $nr = $ergebnis+1;
    $name = substr($name,0,strlen($name)); //($name)-4) zeigt Dateiendungen nicht mit an
    echo "<a href=$datei>$name</a> <br>";
    $ergebnis++;
    }
    }
    fclose($fp);
    }
    }
    // if($ergebnis == "") echo "Keine passenden Dateien gefunden"; // wenn nur nach TXT-Datein gesucht wird // vorne l?schen
    ?>

    - - - - - - - - - - - - - - - - - - - - - - - -

    ergebnis.php
    Zum schluss kommen wir zu der Ergebnisausgabe.

    <?PHP
    $anzahl = mysql_num_rows($result);
    $datensaetze = "$sqlanz"; // Anzahl der anzuzeigenden Datens?tze
    $c = 0; // F?r Array
    while ($row = mysql_fetch_array ($result))
    {
    $id[$c] = $row["id"]; // Hier werden alle ben?tigeten Werte erweittelt - Weitere ben?tigten werte hinzuf?gen
    $c++; // F?r Array
    }
    $seiten = floor($anzahl/$datensaetze); // Seiten ermitteln
    $start = ($seite*$datensaetze)+0; // Anzuzeigende Seite ermitteln

    for ($i = $start; $i <= $start+$datensaetze-1; $i++)
    {
    echo "$id[$i]<br>"; // Datens?tze ausgeben und evtl. verlinken
    }

    for ($i = 0; $i <= $seiten; $i++) // Seiten anzeigen
    {
    $neu_seite = $i*$datensaetze;
    $seitenzahl = $i+1;
    echo "<a href=suchen.php?suchwort=$suchwort&stat=$stat&seite=$i>$seitenzahl</a> - ";
    }

    echo "<br>Es wurden <b>$anzahl</b> SQL Daten gefunden <br> Die SQL-Ergebnisse werden auf $seitenzahl Seiten angezeigt ";
    ?>
    - - - - - - - - - - - - - - - - - - - - - - - -

    Und eure Homepage Suche ist FERTIG

    Dieses Tutorial ist so geschrieben, das es sehr einfach in viele andere Features (z.B.: Kalender, G?stebuch, usw.) eingebunden oder erweitert werden kann.
    Zum Tutorial:
    Dieses Tutorial hat auf meinem PC einwandfrei geklappt, sollte mir dennoch ein Fehler unterlaufen sein, sagt es mir dann doch bitte damit ich den Fehler beheben kann.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k*********2

    Dieses Thema wurde mit folgender Begr?ndung von kenny197902 geschlossen:

    Naja, keine Diskussionsgrundlage

    (Dies ist eine automatische Antwort durch das System).
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!