SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.06.2006, 11:00:31
WebmasterTom WebmasterTom ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 10
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("&Uuml;bung f&uuml;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>";
}
}

?>
Mit Zitat antworten
  #2  
Alt 23.06.2006, 13:49:29
MatMel MatMel ist offline
Member
 
Registriert seit: Aug 2005
Beiträge: 644
MatMel eine Nachricht über ICQ schicken
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
Mit Zitat antworten
  #3  
Alt 27.06.2006, 01:06:14
WebmasterTom WebmasterTom ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 10
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>&Uuml;bung f&uuml;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>";
}
}



?>
Mit Zitat antworten
  #4  
Alt 27.06.2006, 14:32:00
MatMel MatMel ist offline
Member
 
Registriert seit: Aug 2005
Beiträge: 644
MatMel eine Nachricht über ICQ schicken
AW: Problem mit Fehlerausgabe in Suchfunktion

Hallo

Probiers mal so:
PHP-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>&Uuml;bung f&uuml;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>";
}




?>
Ich hab unten eine } gelöscht und sie dafür hinter den Error1 gemacht.
Mach doch wenn du was programmierst direkt Einrückungen, dann passiert sowas nicht so schnell!

Gruß,
Matze
Mit Zitat antworten
  #5  
Alt 29.06.2006, 00:35:51
WebmasterTom WebmasterTom ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 10
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.
Mit Zitat antworten
  #6  
Alt 29.06.2006, 12:59:34
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
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.
__________________
Grüße Andes
Mit Zitat antworten
  #7  
Alt 29.06.2006, 18:48:06
MatMel MatMel ist offline
Member
 
Registriert seit: Aug 2005
Beiträge: 644
MatMel eine Nachricht über ICQ schicken
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

Geändert von MatMel (29.06.2006 um 18:48:28 Uhr) Grund: Rechschreibung
Mit Zitat antworten
  #8  
Alt 29.06.2006, 21:04:04
WebmasterTom WebmasterTom ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 10
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?
Mit Zitat antworten
  #9  
Alt 29.06.2006, 21:29:54
Benutzerbild von Serp
Serp Serp ist offline
Member
 
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
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...
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')

Für 100% sauberen Code.

Geändert von Serp (29.06.2006 um 21:30:53 Uhr)
Mit Zitat antworten
  #10  
Alt 29.06.2006, 21:45:22
WebmasterTom WebmasterTom ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 10
AW: Problem mit Fehlerausgabe in Suchfunktion

YES! Das war´s! Herzlichen Dank an Euch alle :-)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mir FPDF (genauer HTML2FPDF) Spark PHP für Fortgeschrittene und Experten 0 24.02.2006 09:06:02
Problem mit Lokalisierung eines SESSION - Problems Fabian85 PHP für Fortgeschrittene und Experten 5 03.10.2005 20:17:54
Suchfunktion Problem Pixelschubser MySQLi/PDO/(MySQL) 5 02.11.2004 12:17:01
mysql und php problem schmidt PHP für Fortgeschrittene und Experten 9 31.10.2003 18:05:13
SSL Problem im Internet Explorer, need help! Gladder PHP für Fortgeschrittene und Experten 6 02.09.2002 22:21:19


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:20:27 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt