Hallo zusammen,
ich habe folgendes zu bewältigen:
Datenbank mit Tabelle dokumente
Diese hat folgende Spalten: id, file
Ich möchte jetzt durch eine Suche auf der Webseite die Spalte file durchsuchen lassen, und jede Zeile die mit der Suche übereinstimmt soll ausgegeben werden.
Habe bereits dies mir zusammengesucht:
Formular:
Ausgabe:
Funktioniert auch, wenn ich nach dem kompletten Namen in der Spalte file suche.
Möchte z.B. aber auch nur nach allen Einträgen suchen können, die "xxx" im Namen enthalten.
Kann mir da jemand bitte zur Hand gehen?
Danke
ich habe folgendes zu bewältigen:
Datenbank mit Tabelle dokumente
Diese hat folgende Spalten: id, file
Ich möchte jetzt durch eine Suche auf der Webseite die Spalte file durchsuchen lassen, und jede Zeile die mit der Suche übereinstimmt soll ausgegeben werden.
Habe bereits dies mir zusammengesucht:
Formular:
HTML-Code:
<form action="suche.php" method="post"> <label for="search" style="float:left; margin-right:15px; color:#999;">Suche</label> <input name="search" id="search" type="text" class="formfeld" value="<?=$_SESSION['search']?>" /> <input name="suche" id="suche" type="submit" class="formbutton" value="s" /> </form>
PHP-Code:
<?php
// Suche
if ($_GET["suche"]!=""){
$_GET["suche"] = stripslashes ($_GET["suche"]);
$_SESSION['suchstring']=$_GET["suche"];
$_SESSION['suche']=true;
}
else{
if ($_POST['suche']) {
$_SESSION['suche']=true;
}
$suchstring = "";
// Fulltext
if ($_POST['suche']) {
if ($_POST['search']) {
$_SESSION['search']=$_POST['search'];
}
else {
unset ($_SESSION['search']);
}
}
if ($_SESSION['search']) {
$suchstring = " match(file) against('".$_SESSION['search']."' IN BOOLEAN MODE)";
}
// Ende Fulltext
$_SESSION['suchstring']=$suchstring;
}
if ($_GET["seite"] == "") {
$_GET["seite"] = 1;
}
// Alle Einträge
if ($_SESSION['suche']==true) {
$db_all_string = "SELECT * FROM dokumente WHERE";
$db_all_string .= $_SESSION['suchstring'];
#echo $db_all_string;
$db_all_abfragen = @mysql_query ($db_all_string,$db_connect);
$max_all=mysql_num_rows($db_all_abfragen);
// Ende Alle Einträge
$maxanzahl=10;
$maxseiten=ceil($max_all/$maxanzahl);
$start=($_GET["seite"]-1)*$maxanzahl;
}
#echo $max_all;
?>
<!--Datenbank abfrage-->
<?php
if ($max_all>0) {
$db_sort_string = "SELECT * FROM dokumente WHERE";
$db_sort_string .= $_SESSION['suchstring'];
$db_sort_string .= " ORDER BY zeitstempel ASC";
$db_sort_string .= " LIMIT ".$start.",".$maxanzahl;
#echo $db_sort_string;
$db_abfragen = @mysql_query ($db_sort_string,$db_connect);
$max=mysql_num_rows($db_abfragen);
for ($i=0; $i<$max; $i++) {
$zeile = mysql_fetch_array ($db_abfragen, MYSQL_BOTH);
if ($zeile["file"] != "") {
echo "<p class=\"bottom_kl\">";
echo "<a href=\"php/dokumente/files/$zeile[file]\" target=\"_blank\">";
echo "<img src='php/images/download/";
$symbol=array_reverse(explode(".",$zeile["file"]));
echo (strtolower($symbol[0]));
echo "_gr.gif' alt='Datei herunterladen'>";
echo "</a> ";
echo "<a href=\"php/dokumente/files/$zeile[file]\" target=\"_blank\">".$zeile["file"]."</a>";
echo " </p>";
}
}
}
else {
echo '<p style="margin-left:15px">Leider keine Dateien gefunden</p>';
}
?>
<!--Ende Datenbank abfrage-->
<!-- Seitenfunktion -->
<?php
if ($maxseiten>1) {
if ($_GET["seite"]==1) {
$vorwaerts='<a class="links_email" href="'.$PHP_SELF.'?seite=2&suche='.$_SESSION['suchstring'].'">nächste Seite »</a>';
}
if ($_GET["seite"]>1 && $_GET["seite"]<$maxseiten) {
$back=$_GET["seite"]-1;
$vor=$_GET["seite"]+1;
$rueckwaerts='<a class="links_email" href="'.$PHP_SELF.'?seite='.$back.'&suche='.$_SESSION['suchstring'].'">« vorige Seite</a>';
$vorwaerts='<a class="links_email" href="'.$PHP_SELF.'?seite='.$vor.'&suche='.$_SESSION['suchstring'].'">nächste Seite »</a>';
}
if ($_GET["seite"]==$maxseiten) {
$back=$_GET["seite"]-1;
$rueckwaerts='<a class="links_email" href="'.$PHP_SELF.'?seite='.$back.'&suche='.$_SESSION['suchstring'].'">« vorige Seite</a>';
}
}
?>
<!-- Seitenfunktion -->
<div id="seiten">
<div id="back"><? echo $rueckwaerts;?></div>
<div id="next"><? echo $vorwaerts;?></div>
</div>
Möchte z.B. aber auch nur nach allen Einträgen suchen können, die "xxx" im Namen enthalten.
Kann mir da jemand bitte zur Hand gehen?
Danke
Kommentar