• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

fehler in suchfunktion

HTMLPro

Mitglied
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---
<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>

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:
---suchen.php---
<?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"); 
} 
?>

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 "<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 
?>

danke im vorraus :D
LG HTMLPro
 
Werbung:
Werbung:
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 <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"); 
     } 
?>
So siehst du sofort, dass am Ende eine geschweifte Klammer fehlt. Und brauchst nicht nachzufragen ;)

lg
kruschimappel
 
Zuletzt bearbeitet:
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.
 
Werbung:
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!)
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
 
Werbung:
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

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
 
Werbung:
Zurück
Oben