suche in Spalten

Alles, was PHP betrifft, kann hier besprochen werden.

suche in Spalten

Postby sid1900 » 29. July 2004 14:01

Hallo.

Ich möchte in einer Datenbank Tabelle (MySQL) nach Schlagwörter suchen, die man vorher in ein Formular eingegeben hat. Die übereinstimmenden Datensätze sollen anschließend in einer Tabelle Ausgegeben werden. Mein Problem ist nur, ich weiß nicht so recht wie.

Code: Select all
<form action="test.html" method="post">

<tr>
 <td height="22"> <input type="Text" name="suche" value="" size="21" maxlength=""></td>
</tr>
<tr>
 <td> </td>
</tr>
<tr>
 <td height="20"> <input type="Radio" name="such_op" value="gruppe"> Gruppe
      <input type="Radio" name="such_op" value="titel"> Titel</td>
</tr>
<tr>
 <td height="20"> <input type="Radio" name="such_op" value="disknr"> DiskNr.</td>
</tr>
<tr>
 <td> </td>
</tr>
<tr>
 <td height="26"> <input type="Submit" name="" value="Suchen"></td>
</tr>
<tr>
 <td> </td>
</tr>

</form>
sid1900
 
Posts: 10
Joined: 04. June 2004 14:03

Postby TTP » 29. July 2004 15:31

ich hab es bei meiner Produktsuche so gelöst:

<input type="text" name="suchbegriff" size="25"> wird an meine suche.php geschickt (kann auch mehrere Suchbegriffe enthalten)

und das is meine suche.php:
Code: Select all
<?php
session_start();
session_register(test);
$SID=$PHPSESSID;
$error="running";
include("zugriff.inc.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Produktsuche</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="jscript.js" type="text/javascript"></script>
<style type="text/css">
<!--
BODY {
   font-size: 12px;
   font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Stil1 {
   font-size: 10px;
   font-family: Arial, Helvetica, sans-serif;
}
.Stil2 {font-size: 10px;}
#nounderline{text-decoration:none;
         color:#555555}
-->
</style>
</head>
<?
// Datenbankzugriffe

      $start=$_GET[start];
      if(empty($start)) {
      $start="0";
      }
      $step="5";
      $suchbegriff=$_POST[suchbegriff];
      if(empty($suchbegriff)) { $suchbegriff="²"; }
      $suchbegriff=ereg_replace(" ","%",$suchbegriff);
      $suchbegriff="%$suchbegriff%";
      $abfrage = "SELECT * FROM artikel WHERE artikelkategorie LIKE '$suchbegriff' OR artikelname LIKE '$suchbegriff' OR artikelbeschreibung LIKE '$suchbegriff' OR shopartikelnummer LIKE '$suchbegriff' AND showorhide LIKE 's' ORDER BY id DESC LIMIT $start, $step";
      $abfrage2 = "SELECT * FROM artikel WHERE artikelkategorie LIKE '$suchbegriff' OR artikelname LIKE '$suchbegriff' OR artikelbeschreibung LIKE '$suchbegriff' OR shopartikelnummer LIKE '$suchbegriff' AND showorhide LIKE 's' ORDER BY id DESC";
      $ergebnis = mysql_query($abfrage);
      $ergebnis2 = mysql_query($abfrage2);
      $zeilen=mysql_num_rows($ergebnis2);
?>
<body scroll="yes">
<img src="img/suche.gif" width="300" height="60" alt="PRODUKTSUCHE"> <?=$zeilen?> Artikel in Kategorie gefunden &nbsp;&nbsp;<a href="produktsuche.php?<?=$SID?>&start=<?=$start?>" title="Seite aktualisieren"><img src="img/aktualisieren.gif" alt="Seite aktualisieren" border="0"></a>
<hr>
<form action="produktsuche.php?<?=$SID?>" method="post">
Geben Sie hier ihren Suchbegriff ein: <input type="text" name="suchbegriff" size="25"> <input type="submit" value="Suchen">
</form>
<hr>
<table width="100%"  border="0">
  <tr>
    <td width="*" style="color:#000099; font-variant:small-caps; font-size:14px"><b>Bezeichnung:</b></td>
    <td width="120px" style="color:#000099; font-variant:small-caps; font-size:14px"><b>Stauts:</b></td>
    <td width="80px" style="color:#000099; font-variant:small-caps; font-size:14px"><b>Menge:</b></td>
    <td width="15px">&nbsp;</td>
    <td width="50px">&nbsp;</td>
    <td width="120px" style="color:#000099; font-variant:small-caps; font-size:14px"><b>Einzelpreis:</b></td>
  </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>   
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <?
  while($row = mysql_fetch_object($ergebnis))
            {
            $stueck=$row->stueckzahl;
            if($row->neuheit=="y") { $neu="<img src=\"img/neu.gif\" border=\"0\">"; }
            if($row->stueckzahl=="x") { $status="lieferbar"; }
            elseif($row->stueckzahl>10) { $status="lieferbar"; }
            elseif($row->stueckzahl<"1") { $status="ausverkauft";
               if($row->vorbestellbar=="y") { $status="vorbestellbar"; $stueck="0"; }
               }
            else { $status="nur noch wenige "; if($stueck=="0") { $status= $status . " (" . $stueck . " Stck.)"; } }
            $menge=$row0->menge;
            $stueckzahl=$row->stueckzahl;
         echo("<tr><td><a href=\"details.php?$SID&pid=" . $row->id . "\" id=\"nounderline\" title=\"Details\">" . $neu . " " . $row->artikelname); if($row->hot=="y") { echo(" <img src=\"img/hot.gif\" border=\"0\">"); } echo("</a></td>\n");
         echo("<td align=\"center\">$status</td>\n");
         echo("<td align=\"right\"><form action=\"warenkorb.php?$SID&action=insert\" method=\"POST\" name=\"Warenkorb\"><input type=\"hidden\" name=\"pid\" value=\"$row->shopartikelnummer\"><input type=\"text\" name=\"menge\" id=\"basketArtikel_" . $row->id . "\" value=\"1\" size=\"3\" maxlength=\"3\" style=\"text-align:center\" onFocus=\"this.select()\"></td>\n");
         echo("<td align=\"center\"><a id=\"nounderline\" href=\"javascript: void( 0 );\" onclick=\"add('" . $row->id . "');\" title=\"PLUS\">+</a><br><a id=\"nounderline\" href=\"javascript: void( 0 );\" onclick=\"sub('" . $row->id . "');\" title=\"MINUS\">-</a></td>\n");
         echo("<td><input type=\"image\" src=\"img/warenkorbklein.gif\" alt=\"In Warenkorb\"></td>\n");
         $preis="$row->preis";
         $preis2 = str_replace(".",",",$preis);
         echo("<td align=\"right\"></form>" . $preis2 . " EUR</td></form>\n</tr>\n");
         }
         ?>
   
  <? /*
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>   
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  */ ?>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>   
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>


<hr>
<?
$step2=$step-1;
if($start>$step2)
   {
   $back=$start-$step;
   echo("<a href=\"produktsuche.php?$SID&start=$back\" class=\"Stil1\" id=\"nounderline\"><img src=\"\img/back.gif\" alt=\"\" border=\"0\"> Seite zurück</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
   }   
if($start=="0")
{
$step3=$step;
}
else
{
$step3=$start+step;   
}
if($zeilen>$step3)
   {
   $vor=$start+$step;
   echo("<a href=\"produktsuche.php?$SID&start=$vor\" class=\"Stil1\" id=\"nounderline\">Seite weiter <img src=\"\img/vor.gif\" alt=\"\" border=\"0\"></a> ");
   }

?>
</span>

</body>
</html>


hoffe ich hab dir damit weiter geholfen ;)

Nachtrag: sry, nicht suche.php sondern produktsuche.php aber is ja auch egal ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby TTP » 29. July 2004 15:33

noch ne kurze erklärung zu
Code: Select all
      $start=$_GET[start];
      if(empty($start)) {
      $start="0";
      }
      $step="5";

step ist halt der Wert, wieviele Suchergebnisse pro Seite angezeigt werden sollen ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg

Postby HardySim » 30. July 2004 00:31

darf ich noch kurz was anmerken - passt jetzt nicht hier rein aber ich sehs grad:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


das doch so ne zeile die so progs wie dreamweaver gerne benutze...

allerdings ignoriert der browser dann so schöne kleinigkeiten wie ne height="100%" bei ner tabelle usw. soll heißen diese zeile bringt zum einen schonma herzlich wenig (html konform coden kann man auch ohne w3c) aber wenn man dann en design zusammenkloppt und es wird nicht korrekt angezeigt dann ist diese zeile echt das letze wo man den fehler vermutet aber genau da steckt sie ;)

also leute, tipp von mir - lasst sie weg :P


und sorry dass das jezt überhaupt nichts hiermit zu tun hatte aber ich musste es mal loswerden ;)
[url=http://www.hardysim.de]
Image[/url]
www.party-safari.net
User avatar
HardySim
 
Posts: 325
Joined: 19. June 2003 10:22
Location: Geisenheim

Postby sid1900 » 30. July 2004 07:00

Danke für die schnelle Hilfe TTP.

Das Script ist der Hammer, da werde ich mich mal dran machen auch eins zu basteln, sollte jetzt aber kein Problem mehr sein.
sid1900
 
Posts: 10
Joined: 04. June 2004 14:03

Postby TTP » 30. July 2004 12:26

@HardySim das wusst ich auch noch nicht, danke für den Tipp!!

@sid joa kein Ding, hab ich neulich erst gemacht, deswegen hatt ich es noch sofort zur hand ;)
User avatar
TTP
 
Posts: 310
Joined: 30. August 2003 19:38
Location: Wolfsburg


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests