ilch Forum » Allgemein » HTML, PHP, SQL,... » in php datei nach stichwörtern suchen

Geschlossen
  1. #1
    User Pic
    astrid gelöschter User
    habe eine jobseite, diese besteht aus einer gesuch.php (formular zum eintragen) und einer show.php die die einträge zeigt. eine gesuch.txt beinhaltet alle einträge!

    meine frage wie kann ich innerhalb der show.php nach bestimmten wörtern suchen

    bespielseite: www.koelner-job-stellenmarkt.de/stglist.php

    dort befindet sich ein suchen button mittels dem ich innerhalb der einträge online suchen kann.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    manuel ilch-Gründer
    Registriert seit
    22.03.2003
    Beiträge
    4.260
    Beitragswertungen
    4 Beitragspunkte
    gut aber du willst doch jetzt nicht online suchen sondern in der datei selbern:

    z.b. so:

    in der datei steht drin

    hallo astrid
    wie gehts dir heute


    und du willst jetzt nach astrid suchen können oder?
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    astrid gelöschter User
    ja genau, das soll aber jeder können.
    mittels des suche buttons!
    ist das möglich?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    scaRFhogg Mitglied
    Registriert seit
    02.06.2003
    Beiträge
    750
    Beitragswertungen
    0 Beitragspunkte
    Also ich geh mal davon aus, dass du den Inhalt der gesuch.txt Zeilenweise ausliest und jede Zeile einer Anzeige entspricht?

    Das einfachste wäre dann:

    1. einen Form mit Eingabefeld machen in das der Suchbegriff eingegeben wird.

    
    <form method="post" action="suchergebnis.php">
    <input type="text" name="suchbegriff">
    <input type="submit" value="suchen">
    </form>


    2. die Seite suchergebnis.php die das Suchergebnis anzeigt ist im Prinzip die gleiche wie zum Anzeigen aller Gesuche, nur dass jetzt für jede Zeile geprüft wird ob der Suchbegriff darin vorkommt. Wenn ja wird die Zeile angezeigt, wenn nein einfach übersprungen und mit der nächsten Zeile weitergemacht.

    der Code dazu sollte in etwa so aussehen:

    
    if(preg_match('/'.$_POST['suchbegriff].'/i', $gesuchzeile)) 
    {
     // hier den vorhandenen PHP Code einfügen um das Gesuch anzuzeigen.   
    }
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    astrid gelöschter User
    Parse error: parse error, expecting `']'' in /home/rocco-online.com/www.rocco-online.com/showist.php on line 36


    wenn ich deinen code verwende bekomm ich diese fehlermeldung??!!

    kannst du mir weiterhelfen??

    seite steht unter www.rocco-online.com/show.php

    ausserdem noch eine frage, brauch ich nicht noch eine txt für die suchergebnisse oder wird da die eine verwendet??

    kenn mich in php nicht wirklich aus hoffe du kannst mir weiterhelfen dankeeeeeeee
    astrid
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    scaRFhogg Mitglied
    Registriert seit
    02.06.2003
    Beiträge
    750
    Beitragswertungen
    0 Beitragspunkte
    if(preg_match('/'.$_POST['suchbegriff'].'/i', $gesuchzeile))


    nach suchbegriff fehlte ein Hochkomma.

    Wieso heuert ihr eigentlich nicht einen der Arbeitsuchenden IT Leute von eurer Seite an? zunge
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    astrid gelöschter User
    gute frage glaub da hat sich keiner gefunden, ich kenne den auftraggeber auch nicht persönlich!

    so hab jetzt das ' eingefügt leider funktioniert die abfrage wieder nicht, hab als suchbegriff "verkauf" eingegeben er zeigt mir zwar die "ergebnisseite" aber leider ohne einträge!

    wie vorher schon gefragt, brauch ich da nicht noch eine txt?



    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    scaRFhogg Mitglied
    Registriert seit
    02.06.2003
    Beiträge
    750
    Beitragswertungen
    0 Beitragspunkte
    Nein eine txt Datei sollte reichen. Die Idee ist ja, dass in der show.php einfach alle Einträge ausgelesen werden und bei der Suche nur die, die den Suchbegriff enthalten. Das Suchergebnis wird aber nicht gespeichert sondern einfach nur angezeigt.

    Warum das ganze noch nicht funktioniert kann man so schlecht sagen. Am besten einfach mal den Kompletten Inhalt der php Datei posten.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    astrid gelöschter User
    ok danke also hier mal der code für die show.php

    <?php
    include("gesuch.txt");
    ?>

    in der ergebnis.php steht folgendes

    <?php
    if(preg_match('/'.$_POST['suchbegriff'].'/i', $gesuchzeile))
    {
    include("gesuch.txt");
    }
    ?>

    die eintrag.php bei mir gesuch.php genannt
    steht das drin

    <?php
    if ($action == "add"){
    if ($tele == "" || $textgesuch == "" || $textausbild == "" || $textberuf == ""){
    echo "<b>Sie haben nicht alle Felder ausgef&uuml;llt !</b><br> Klicken Sie auf den Backbutton Ihres Browsers !<br>";
    }
    else{

    $eintrag = "<table>
    <tr>
    <td>$aanrede</td>
    <td>&nbsp;&nbsp;</td>
    <td>$avorname</td>
    <td>&nbsp;&nbsp;</td>
    <td>$aname</td>
    <td>&nbsp;&nbsp;</td>
    <td>$ataetig</td>
    <td>&nbsp;&nbsp;</td>
    <td>$aart</td>
    <td>&nbsp;&nbsp;</td>
    <td>$agesuch</td>
    <td>&nbsp;&nbsp;</td>
    <td>$aausbild</td>
    <td>&nbsp;&nbsp;</td>
    <td>$aberuf</td>
    </tr>
    <tr>
    <td>$anrede</td>
    <td>&nbsp;&nbsp;</td>
    <td><a href=\"mailto:$mail\">$vorname</a></td>
    <td>&nbsp;&nbsp;</td>
    <td><a href=\"mailto:$mail\">$name</a></td>
    <td>&nbsp;&nbsp;</td>
    <td>$taetig</td>
    <td>&nbsp;&nbsp;</td>
    <td>$art</td>
    <td>&nbsp;&nbsp;</td>
    <td>$textgesuch</td>
    <td>&nbsp;&nbsp;</td>
    <td>$textausbild</td>
    <td>&nbsp;&nbsp;</td>
    <td>$textberuf</td>
    </tr>
    </table><hr><br>";
    }
    $datei = fopen("gesuch.txt","a");
    fputs($datei,$eintrag);
    fclose($datei);
    echo "Danke $vorname&nbsp;$name f&uuml;r Ihren Eintrag!<br><br><a href=show.php>Zu den Stellengesuchen</a>";
    }

    else{
    ?>

    hoff du kannst mir weiterhelfen, 10000 dank
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    scaRFhogg Mitglied
    Registriert seit
    02.06.2003
    Beiträge
    750
    Beitragswertungen
    0 Beitragspunkte
    ergebnis.php

    <?php
    $f = file_get_contents('gesuch.txt');
    
    $g = explode('<hr>', $f);
    foreach($g as $gesuchzeile)
    {
        if(preg_match('/'.$_POST['suchbegriff'].'/i', $gesuchzeile)) 
        {
            echo preg_replace('/'.$_POST['suchbegriff'].'/i', '<b style="background: #ff0">'. $_GET['suchbegriff'].'</b>', $gesuchzeile);
            echo '<hr>';
        }
    }
    
    ?>
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    astrid gelöschter User
    danke vielmals leider sagt er mir schon wieder eine fehlermeldung auf line 41 das wär das das { vor echo preg_ replace

    bin schon verzweifelt, tut mir leid das ich dich so strapazier!

    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    scaRFhogg Mitglied
    Registriert seit
    02.06.2003
    Beiträge
    750
    Beitragswertungen
    0 Beitragspunkte
    Wieso hat die Datei 41 Zeilen? In ergebnis.php soll muss nur das rein was ich oben gepostet habe.

    Das ist eine Zeile:

    echo preg_replace('/'.$_POST['suchbegriff'].'/i', '<b style="background: #ff0">'. $_GET['suchbegriff'].'</b>', $gesuchzeile);
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    astrid Mitglied
    Registriert seit
    20.08.2004
    Beiträge
    1
    Beitragswertungen
    0 Beitragspunkte
    danke habs endlich hinbekommen! das war eine schwere geburt, danke für deine geduld
    lg aus wien astrid
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten