Stichwortsuche sqldb

globetrotter007

Grünschnabel
Hallo,
bin gerade dabei ein script zu schreiben, womit ich mittels einer Stichwortsuche über Formular in 3 Spalten von 17 Spalten einer db nach einzelnen Wörtern im Text suchen kann.

denke ich werde den Quelltext soweit es geht aufschreiben, vielleicht weiß ja einer von euch was ich falsch mache.
Quelltext Formular
Code:
<form action="suchen.php" method="post" target="hauptframe" >  <b>Stichwortsuche</b><br>
<input type="Text" name="suchen"  size="15" >&nbsp;
<input type="Submit" name="senden" value="go">
</form>

und hier das php sript

Dazu muß ich sagen das die dbtabelle benning benannt wurde und 17 Spalten hat mit Namen
( `id` ,`artikelnummer` , `bild` , `bezeichnung` , `jahrgang` , `land` , `region` , `weingut` , `sorte` , `sorte1` , `geschmack` , `art` , `beschreibung` , `menge` , `preis` , `preisliter` , `alkoholgehalt` )
Code:
include ("../dbanbindung.php");
mysql_connect($server, $user, $passwort) or die ("<H3>Datenbankserver nicht erreichbar</h3>");
MYSQL_SELECT_DB($datenbank) or die ("<h3>Datenbank nicht vorhanden</h3>");

$abfrage = "SELECT * FROM benning
                  WHERE beschreibung LIKE '%$suchen%'
                           or jahrgang LIKE '%$suchen%'
                           or bezeichnung LIKE '%$suchen%'
                ORDER BY preisliter DESC";

$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

  while($row = mysql_fetch_object($ergebnis))
         {

Was mache ich verkehrt ?
Vieleicht habe ich ja mal Glück das mir jemand helfen kannn
Bedanke mich im vorraus
Gruß Globetrotter007
 
Mache mal echo $abfrage; und nach dem mysql_query schreibst Du echo mysql_error();. So sehe ich keinen Fehler, zumindest nicht im Query.

Nur das erste mysql_fetch_object vor der while-Schleife solltest Du vielleicht entfernen.

Gruß hpvw
 
erstmal danke für deine schnelle Antwort hpvw,
Irgentwie hat es jetzt geklappt, DANKE
jetzt habe ich noch eine Frage,
Da ich das php script in mehrere Seiten anzeigen möchte wird die Variable "$suchen" auf den folgenden Seiten als leer angezeigt. Wie mache ich daß,das Wort was ich in der Variablen "$suchen" für die nächsten Seiten gespeichert bleibt.
Ich sende dir mal das ganze script zu. Vielleicht kannst du mir da auch ein bisschen helfen.
Code:
<?php




include ("../dbanbindung.php");
$database='benning';
         $proseite=6;
        
            mysql_connect($server, $user, $passwort) or die ("<H3>Datenbankserver nicht erreichbar</h3>");
            MYSQL_SELECT_DB($datenbank) or die ("<h3>Datenbank nicht vorhanden</h3>");
            mysql_select_db ($database);
 
  $abfrage = "SELECT * FROM benning
                  WHERE beschreibung LIKE '%$suchen%'
                           or jahrgang LIKE '%$suchen%'
                           or bezeichnung LIKE '%$suchen%'
                ORDER BY preisliter DESC";
                
 $result = mysql_query($abfrage);
 $number = mysql_num_rows($result);
 $seiten=ceil($number/$proseite);


  $start=$_GET['page'] * $proseite;
  
  $abfrage = "SELECT * FROM benning
                  WHERE beschreibung LIKE '%$suchen%'
                           or jahrgang LIKE '%$suchen%'
                           or bezeichnung LIKE '%$suchen%'
                ORDER BY preisliter DESC LIMIT $start,$proseite";
             
  $result = mysql_query($abfrage);



  
  
  $ende = $start + $proseite-1 ;
  if ($ende>$number) { $ende = $number-1; }
     $page =$page+1;

echo "<p align=center><b>Zur Zeit sind $number Einträge in der Artikelliste,<br> Seite $page - Einträge von $start bis $ende</b></p> ";

 



?>

<table width="400" align="center">
<tr><td ><hr noshade size="2" color="#FFDF00" ></td></tr>
 <tr>
 <td align="center">
Folgende Artikel mit der Bezeichnung <br>
<? echo " <font size=+1 color=#FF0000 >" $suchen " </font> "; ?>     <br>
 wurden gefunden
</td></tr>
</table>



<?
         while($row = mysql_fetch_object($result))
         {
 ?>

und jetzt der Quelltext für die Seitenaufrufe
Code:
 <hr noshade size="2" color="#FFDF00" > <p align=center>
<?

if ($_GET['page']>0) {
    $i=$_GET['page']-1;
           echo "<a href=\"suchen.php?page=".$i."\"><b>&lt;&lt; zurück </b> </a>";

}
for($i=0; $i<=$seiten; $i++) {
    if ($i==$_GET['page']) {
     echo $i."&nbsp;";
    }
    else {

        echo "<a href=\"suchen.php?page=".$i."\"><b> $i</b> </a>&nbsp;";
    }
}
if ($_GET['page']<$seiten) {
    $i=$_GET['page']+1;

    echo "<a href=\"suchen.php?page=".$i."\"><b> vor &gt;&gt;</b></A> </p>";
}


?>
</p>
 
Entweder hängst Du es an die Links als weiteren GET-Parameter an oder Du speicherst es in einer Session.

Gruß hpvw
 
Zurück