Problem mit Fehlerausgabe in Suchfunktion
Hallo zusammen,
ich möchte eine Textdatei per Formular durchsuchen und folgendes erreichen: - Prüfung, ob Suchbegriff min. 3 Zeichen lang - Fehlermeldung, falls nichts gefunden wird. - falls alles ok ist, sollen die gefundenen Datensätze ausgegeben werden. Problem: Die Fehlermeldung, dass nichts gefunden wurde, wird leider auch angezeigt, wenn es Ergebnisse gibt. Ich komme hier leider nicht weiter. Wo könnte hier der Denkfehler sein? Vielen Dank für Eure Hilfe!! Hier der Code: <? if(isset($_REQUEST['suche'])){ // Formular gesendet if(strlen($_REQUEST['suche']) > 3){ // mindestens 3 Zeichen eingegeben $datei = "test.txt"; $lines = file($datei); { if (strpos($line, $_POST["suche"]) == FALSE) {$error1 = "Fehler: nix gefunden.<br>"; } foreach ($lines as $line) { if (strpos($line, $_POST["suche"]) !== FALSE && strpos($line,"Deutsch")) //Daten ausgeben { $zeile = explode('#', trim($line)); print("<a href=");print($zeile[1]);print(">"); print($zeile[1]); print("</a>"); print("<br>"); print("<p class=normal>Kategorie: ");print($zeile[2]); print(" | "); print("Übung für ");print($zeile[3]); print(" | "); print("Rubrik: ");print($zeile[4]); print("<br><br></p>"); }}}}else { $error2 = "Fehler: Bitte geben Sie mindestens 3 Zeichen ein.<br>"; } } ?> |
AW: Problem mit Fehlerausgabe in Suchfunktion
Hallo
Ich weiß nich ob es was ändert aber das { unter $lines = file($datei); gibt für mich irgendwie keinen Sinn. Ebenso das allerletzte. Vllt verschiebt des das ganze irgendwie. En Versuch ists wert... Dann och eine Kleinigkeit: Wenn er nichts findet dann brauch er auch nicht suchen. also kannste das was nach dem "nix gefunden" Error kommt noch in ein else packen! Gruß, Matze |
AW: Problem mit Fehlerausgabe in Suchfunktion
ich habe das ganze nun umgestellt. gleiches Ergebnis. Es kommt die Fehlermeldung, wenn nichts gefunden wird und aber auch, wenn Ergebnisse zurückgegeben werden. Wo könnte der Fehler sein? Ich bin Euch für jeden Tip dankbar :-) Hier der neue Code:
<? $datei = "test6_1.txt"; $lines = file($datei); sort($lines); if(isset($_REQUEST['suche'])){ // wurde das Formular abgesendet if(strlen($_REQUEST['suche']) > 3){ // hat der Benutzer mindestens 3 Zeichen eingegeben foreach ($lines as $line) { if (strpos($line, $_POST["suche"]) !== FALSE && strpos($line,"Deutsch")) //Daten ausgeben { $zeile = explode('#', trim($line)); print("<a href=");print($zeile[4]);print(">"); print($zeile[4]); print("</a>"); print("<p class=normal>Übung für ");print($zeile[2]); print(" | "); print("Kategorie: ");print($zeile[3]); print(" | "); print("Titel: ");print($zeile[0]); print("<br><br></p>"); }else{ $error1 = "Fehler: nix gefunden.<br>"; } }}else { $error2 = "Fehler: Bitte geben Sie mindestens 3 Zeichen ein.<br>"; } } ?> |
AW: Problem mit Fehlerausgabe in Suchfunktion
Hallo
Probiers mal so: PHP-Code:
Mach doch wenn du was programmierst direkt Einrückungen, dann passiert sowas nicht so schnell! Gruß, Matze |
AW: Problem mit Fehlerausgabe in Suchfunktion
Hallo Matze,
vielen Dank. Hab´s ausprobiert - leider ohne Erfolg. Die Fehlermeldun kommt trotzdem noch, auch wenn Daten gefunden werden. ich versuche, das nun mal ganz anders. |
AW: Problem mit Fehlerausgabe in Suchfunktion
Dir ist aber schon klar, dass deine Textdatei zeilenweise abgesucht wird? Was ja deine Schleife macht. Also kann es passieren, dass er in einer Zeile eben nichts findet und dir dadurch auch eine Fehlermeldung ausgibt. Obwohl er in den anderen Zeilen etwas gefunden hat.
Deine Abfrage ob die Suche erfolgreich war kann erst erfolgen, wenn die ganze Datei durchsucht wurde. |
AW: Problem mit Fehlerausgabe in Suchfunktion
Ach, da ha ich beim suchen nach Syntax fehlern gernicht drauf geachtet *an den Kopf schlag*
Kannst du schnell lösen indem du einfach das ganze else in dem jetzt dem error1 seine Fehlermeldung kriegt wegmachst, dann vor alledem error1 die Fehlermeldung gibst und im Falle eines Sucherfolgs wieder $error1="" setzt. Gruß, Matze |
AW: Problem mit Fehlerausgabe in Suchfunktion
Au Backe. dass mit dem zeilenweise einlesen habe ich übersehen. @MatMel: so ganz habe ich Deinen Vorschlag nicht verstanden. Wo soll der ERROR: nix gefunden hin?
|
AW: Problem mit Fehlerausgabe in Suchfunktion
So meinte er das.
PHP-Code:
|
AW: Problem mit Fehlerausgabe in Suchfunktion
Mein Vorschlag, das schnell zu lösen:
Vor der Schleife: $error = true; In der Schleife wenn was gefunden wurde $error auf false setzen. Und am Ende if($error) echo 'Fehlermeldung'; Edit: Zu langsam... Aber ich würds trotzdem mit booleschen Werten machen... |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:53:58 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.