Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank durchsuchen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenbank durchsuchen

    Hallo,

    also bin noch blutiger Anfänger deshalb wird mein Programmierstyle und meine Synex Formatierung nicht so super sein.

    Also ich habe in einer Tabelle mehrere Spalten und in ihrer mehre Daten gespeichert und wollte nun eine Suche erstellen in dem der Benutzer sich aussuchen kann welcher der Spalten durchsucht werden sollen.




    So in etwa sollte das dann aussehen.

    Nun habe ich ein Script programmieren mit dem automatisch die Spalten Produkt, Marke und Konzern durchsucht werden.

    PHP-Code:
    <?php
    if (isset($submit)) {

    $fehler     false;
    $fehlertext "";

    if (empty(
    $_POST['sb'])) {
                        
    $fehler      true;
                        
    $fehlertext .="<span style=\"color:red\">Sie haben keinen Suchbegriff angegeben!</span><br />";
                        } else if (
    strlen($_POST['sb'])<2) {
                        
    $fehler      true;
                        
    $fehlertext .="<span style=\"color:red\">Ihr Suchbegriff muss mindestens aus 2 Zeichen bestehen!</span><br />";
                        }
                        
    if (
    $fehler) {
     echo 
    "<p>$fehlertext</p><p><a href='javascript:history.back()'>[Zurück zum Formular]</a></p>";
    } else {

    $sql      "SELECT id, produkt, marke, konzern FROM produkte WHERE produkt LIKE '%$_POST[sb]%' OR marke LIKE '%$_POST[sb]%' OR konzern LIKE '%$_POST[sb]%'";
    $inhalt   mysql_query($sql);
    $zeilen   mysql_num_rows($inhalt);

    echo 
    "<p><b>$zeilen Produkte</b> wurdern in der Datenbank gefunden!</p>";

    if (
    $zeilen) {

    echo 
    "<p><table border='1' width=\"450\" cellspacing='0'>";
    echo 
    "<tr><th>ID</th><th>Produkt</th><th>Marke</th><th>Konzern</th><tr>";
    while (
    $eintrag=mysql_fetch_assoc($inhalt)) {
    echo 
    "<tr>";
    foreach (
    $eintrag as $key => $value) {
    echo 
    "<td><a href=\"?content=/produkte/produkt&id=$eintrag[id]\" style=\"text-decoration:none;\">$value&nbsp;</a></td>";
      }
      echo 
    "</tr>";
    }
    echo 
    "</table></p>";

    }
    }
    }

    ?>
    Doch verstehe ich irgendwie nicht wie ich mein SQL Code dynamisch zusammenbastle.
    Oder wie würdet ihr das machen?
    Mit mehreren Querys?

    Sorry für die wahrscheinlich sehr dumme Frage.

    Gruß
    Robin


  • #2
    Hi,

    eine Möglichkeit wäre das Folgende:

    Zitat von robin1605 Beitrag anzeigen
    PHP-Code:
    ...
    } else {

    $bedingung = array();

    $sql      "SELECT id, produkt, marke, konzern FROM produkte WHERE "

    if (isset($_POST['cb_produkt'])
    {
      
    $bedingung[]="produkt LIKE '%$_POST[sb]%'";
    }

    if (isset(
    $_POST['cb_marke'])
    {
      
    $bedingung[]="marke LIKE '%$_POST[sb]%'";
    }
    if (isset(
    $_POST['cb_konzern'])
    {
      
    $bedingung[]="konzern LIKE '%$_POST[sb]%'";
    }
    if (
    count ($bedingung) != )
    {
       
    $constraint imploDe (' OR '$bedingung);
       
    $inhalt   mysql_query($sql." ".$constraint);
       
    $zeilen   mysql_num_rows($inhalt);
    }
    else
    {
      
    $zeilen=0;
    }

    echo 
    "<p><b>$zeilen Produkte</b> wurden in der Datenbank gefunden!</p>";

    if (
    $zeilen) {

    .... 
    Die Schlüssel, die mit cb_ beginnen sind dabei jeweils die Namen der Checkboxen.
    Ach so, hab's nicht getestet...
    *wink*
    Carsten

    Kommentar

    Lädt...
    X