Hallo, werd das Thema hier dicht machen. Für Interessenten: Hier gehts weiter:http://www.php.de/datenbanken/80845-...tml#post602039
Hallo liebes Forum,
ich suche jetzt schon seit fast zwei Tagen nach einer Möglichkeit, für meine (funktionierende) Volltextsuche erweiterte Funktionen hinzuzufügen, wurde aber nicht fündig.
Ich habs mir so vorgestellt, dass über mehrere Suchfelder Suchbegriffe gefiltert werden können. Wenn es also in jeweils fünf Einträgen in meiner DB das Wort Alpha (Spalte1) gibt und in dreien davon das Wort Beta (Spalte2), dann soll bei der Suche nach den Begriffen Alpha und Beta, eben diese drei Einträge als Ergebnisse auftauchen.
Ich habe hier mal was probiert:
Hier die Suchmaske(n)PHP-Code:<?php
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
{
$seite = 1;
}
// Verbindung zur Datenbank herstellen
$link = require("dbconnect.php");
$suchwort1 = mysql_real_escape_string($_GET['suche1']);
$suchwort2 = mysql_real_escape_string($_GET['suche2']);
$suchwort3 = mysql_real_escape_string($_GET['suche3']);
//Einträge pro Seite: Hier xx pro Seite
$eintraege_pro_seite = 50 ;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
$abfrage = "SELECT * FROM tabelle WHERE MATCH (spalte1) AGAINST ('%$suchwort1' IN BOOLEAN MODE) AND MATCH (spalte2) AGAINST ('%suchwort2' IN BOOLEAN MODE)
AND MATCH (spalte3) AGAINST ('%$suchwort3' IN BOOLEAN MODE) LIMIT $start, $eintraege_pro_seite";
$ergebnis=mysql_query($abfrage) ;
echo mysql_error();
echo "<p><h3>Suchergebnisse</h3></p>";
while($row = mysql_fetch_object($ergebnis))
{
echo "<fieldset>";
echo "<p><b>abc:</b></td><td>".htmlspecialchars ($row->spalte1)." </p>"; // Hier die Ausgabe der Einträge
echo "<p><b>abc:</b></td><td>".htmlspecialchars ($row->spalte2)." </p>";
echo "<p><b>abc:</b></td><td>".htmlspecialchars ($row->spalte3)." </p>";
echo "</fieldset>";
}
$result = mysql_query("SELECT * FROM tabelle WHERE MATCH (spalte1) AGAINST ('%$suchwort1' IN BOOLEAN MODE) AND MATCH (spalte2) AGAINST ('%suchwort2' IN BOOLEAN MODE) AND MATCH (spalte3) AGAINST ('%$suchwort3' IN BOOLEAN MODE)");
$menge = mysql_num_rows($result);
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;
//Ausgabe der Seitenlinks:
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
{
$b = $a + 1;
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
if($seite == $b)
{
echo " <b>$b</b> ";
}
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
else
{
echo "<a href=\suchen.php?suche=".$_GET['suche']."&seite=$b\">$b</a> ";
}
}
echo "</div>";
echo "<p></p>" ;
echo "<fieldset></fieldset>" ;
$menge2 = mysql_num_rows ( $result );
echo '<b>' . $menge2 . ' Ergebnisse gefunden</b><br>';
?>
HTML-Code:<form id="suche" name="suche" action="suchen.php" method="GET" enctype="text/html" onsubmit="return "> <p></p> <p>Suche nach abc </p> <input type="text" name="suche1" value="" size="15" maxlength="20" /> <p></p> <p>Suche nach abc</p> <input type="text" name="suche2" value="" size="15" maxlength="20" /> <p></p> <p>Suche nach abc</p> <input type="text" name="suche3" value="" size="15" maxlength="20" /> <input type="submit" name="" value="Los" /> </form>
Allerdings bekomme ich so keine Ergebnisse.
Suche ich nur nach einem Begriff, funktionierts einwandfrei. Hat da vllt jemand eine Idee?
Danke schonmal.
Hallo, werd das Thema hier dicht machen. Für Interessenten: Hier gehts weiter:http://www.php.de/datenbanken/80845-...tml#post602039
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)