Hallo zusammen, folgendes Problem hält mich schon einige Tage auf Trab:
Ich habe hier ein simples Script, um die Ergebnisse der MYSQL-Volltextsuche umblättern zu können.
PHP-Code:
$host = "";
$user = "";
$password = "";
$database = "";
$table = "";
$db = mysql_connect ('') or die (mysql_error);
$connect = mysql_select_db ('') or die (mysql_error);
$start = mysql_real_escape_string($_GET['start']);
$suchwort = mysql_real_escape_string($_GET['suche']);
// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 2; // Datensätze pro Ausgabeseite
// Verbindung zu MySQL-Datenbank herstellen oder sterben.
@mysql_connect($host,$user,$password)
or die("Abbruch: Verbindung zu '$host'"
." konnte nicht hergestellt werden.");
// Benötigte Datenbank auswählen oder sterben.
@mysql_select_db($database)
or die("Abbruch: Datenbank '$database' konnte nicht"
." selektiert werden.<br><br>MySQL sagt: ".mysql_error());
// Feststellen der Anzahl der verfügbaren Datensätze.
$resultID = @mysql_query("SELECT COUNT(*) FROM ".$table);
$total = @mysql_result($resultID,0);
// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
$start = ($start >= $total) ? $total - $limit : $start;
// Datenbankabfrage ausführen.
$query = "SELECT * FROM ".$table." WHERE MATCH (word1,word2,word3) AGAINST ('$suchwort' IN BOOLEAN MODE) LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
// Ergebnisse lesen und an den Client ausgeben
while ($data = mysql_fetch_array($resultID))
{
echo "<p><b>word1:</b></td><td>" .$data["word1"]."<br />";
echo "<p><b>word2:</b></td><td>" .$data["word2"]."<br />";
echo "<p><b>word3:</b></td><td>" .$data["word3"]."<br />";
}
// Zurück- und Vorblättern
if ($start > 0)
{
$newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
echo "<a href=".$_SERVER['SCRIPT_NAME']."?start=".$newStart
."><< zurück</a>";
}
if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo " <a href=".$_SERVER['SCRIPT_NAME']."?start=".$newStart
.">vor >></a>";
}
?>
Sie Suchleiste befindet sich auf der Index.htm und sieht wie folgt aus:
HTML-Code:
form id="suche" name="suche" action="suche.php" method="GET" enctype="text/html" onsubmit="return ">
<input type="text" name="suche" value="" size="15" maxlength="20" />
</p>
<input type="submit" name="" value="suche starten" />
</form>
Das Problem ist, dass zwar Ergebnisse gefunden werden, beim drücken des "Vor"_ Buttons die Folge-Seiten allerdings leer belieben. Trage ich anstatt "$suchwort" den Begriff direkt ein, funktioniert das Ganze einwandfrei. Der Inhalt geht also irgendwie verloren.
Wie könnte ich das Problem denn am Besten lösen?
Schonmal vielen Dank für eure Hilfe