fehler in suchfunktion

hallo community,
ich habe dieses tutorial zum erstellen einer suchfunktion gefunden:

Webmasterpro v5 - Homepage-Suche | SQL & TXT | incl. Seitenwechsel - Tutorials, Tipps und Tricks für Webmaster auf Webmasterpro.de

was man dazu sagen muss ich habe nur die codes/quelltexte in einen ordner kopiert und dann halt mit XAMPP getestet. das formular zum eingeben klappt auch…
aber wenn ich suchen klicke zeigt XAMPP mir an

Parse error: syntax error, unexpected $end in C:\xampp\htdocs\suchfunktion\suchen.php on line 18

was muss ich tun? vielleciht irgendwas umkonfigurieren? es sind übrigens in dem ordner nur die dateien nicht irgendwas anderes!

hier die codes/quelltexte:

[PHP]
—index.php—


Genau
Ungenau

[/PHP]

[PHP]
—config.php—

<?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 ); ?>

[/PHP]

[PHP]
—suchen.php—

<?php include ("config.php"); // Config.php einfügen echo "Suche nach $suchwort wurde gestartet
"; 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"); } ?>

[/PHP]

[PHP]
—txtsuche.php—

<?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 "$name
"; $ergebnis++; } } fclose($fp); } } // if($ergebnis == "") echo "Keine passenden Dateien gefunden"; // wenn nur nach TXT-Datein gesucht wird // vorne löschen ?>

[/PHP]

danke im vorraus :smiley:
LG HTMLPro

Schau dir die suchen.php nochmal an.
Klammer fehlt

sry ich glaub ich bin zu blöpd aber wo fehlt die?^^

Du könntest den Quelltext einrücken und einen Editor nutzen, der dich beim Coden unterstützt. Das macht die ganze Sache übersichtlicher und du findest strukturelle Fehler schneller.

[php]
—suchen.php—

<?php include ("config.php"); // Config.php einfügen echo "Suche nach $suchwort wurde gestartet
"; 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"); } ?>

[/php]So siehst du sofort, dass am Ende eine geschweifte Klammer fehlt. Und brauchst nicht nachzufragen :wink:

lg
kruschimappel

toll! jetzt steht da
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\suchfunktion\suchen.php on line 19

Du solltest auch nicht kruschimappels Code kopieren, sondern diesen ansehen und dessen Einrückung selbst erkennen, wo die Klammer fehlt.

tut mir leid ich bin halt ne niete in php. bitte helf mir kannst du dsa script verbesern?

[php]if($sql == 1)
{ // Klammer EINS geht auf
if ($stat == 0) { // Klammer ZWEI geht auf
$result = mysql_query(„SELECT * from $tabelle WHERE $spalte = ‚$suchwort‘“);
include („ergebnis.php“);
} // Klammer ZWEI geht zu
else if ($stat == 1) { // Klammer DREI geht auf
$result = mysql_query(„SELECT * from $tabelle WHERE $spalte LIKE ‚%$suchwort%‘“);
include („ergebnis.php“);
} // Klammer DREI geht zu
} // Klammer EINS geht zu (diese hat gefehlt!)[/php]
Sieh dir die Kommentare an…

danke aber wenn ich jetzt 123 in der suche eingebe und ungenau rücke dann steht da
Suche nach wurde gestartet

Warning: mysql_query() [function.mysql-query]: Access denied for user ‚ODBC‘@‚localhost‘ (using password: NO) in C:\xampp\htdocs\suchfunktion\suchen.php on line 11

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\suchfunktion\suchen.php on line 11

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\suchfunktion\ergebnis.php on line 2

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\suchfunktion\ergebnis.php on line 5

1 -
Es wurden SQL Daten gefunden
Die SQL-Ergebnisse werden auf 1 Seiten angezeigt

also man muss dazu sagen dass ich die suche ohne mysql machen möchte. wie kann ich das anstellen?

Indem du die Einstellungen in config.php entsprechend änderst.

[php]$sql = „1“; // SQL Datenbank durchsuchen? 0-Nein / 1-Ja
$txt = „1“; // TXT Dateien Suchen? 0-Nein / 1-Ja [/php]

Das Script durchsucht in der vorliegenden Fassung offenbar nur *.txt-Dateien (siehe txtsuche.php).

Danke mermshaus das ist sehr nett. Okay kennt dann jemand vielleicht ein Tutorial fuer eine interne Suchfunktion (ohne google oder so). Danke

Ein fertiges PHP-Script, das eine Liste von Dateien auf „Textbasis“ durchsucht, ist mit nicht bekannt. Aber die gibt es definitiv auch schon fertig. Suche nach „php seite durchsuchen“ oder so, wenn du es nicht schaffst, das vorhandene Script entsprechend anzupassen.

okay vielen dank!