Dropdown-Menü soll auf DB zugreifen

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

  • Dropdown-Menü soll auf DB zugreifen

    Hallo,

    ich möchte folgendes Projekt realisieren:

    -ich habe eine Datenbank meiner Videos angelegt
    -in dieser gibt es eine Spalte "art", sie enthält
    für jeden Film die Kategorie z.B. "action"
    -ich möchte jetzt auf einer Startseite ein dropdown-menue
    erstellen
    -aus diesem soll man eine Kategorie z.B."action" auswählen
    und bekommt dann alle Filme aufgelistet die dieser Kategorie
    entsprechen

    was ich bis jetzt geschafft habe:

    -ich kann aus dem zweiten dropdown-menue eine Kategorie
    wählen und bekomme auch die entsprechenden Filme angzeigt,
    aber das funzt nur weil es noch ein erstes dropdown gibt,
    welches stets den Wert "art" besitzt
    -das ist natürlich eine sehr besch...... Lösung
    -ich habe keinen Plan wie man das anders machen kann

    -deshalb möchte ich diejenigen um Hilfe bitten die etwas
    mehr von der Sache verstehen

    Vielen Dank an alle die helfen !!!


    hier ist der code:


    PHP-Code:
    <?php

    include("hidden/db_connect2.inc");
    require(
    "hidden/biblio2.inc");
    if(!isset(
    $set))
    {
    echo 
    "<form action=\"$PHP_SELF\" method=\"post\">\n";
    echo 
    "<input type=\"hidden\" value=\"true\" name=\"set\">\n";
    echo 
    "<b>Suche nach:</b>\n";
    echo 
    "<select size=\"1\" name=\"spalte\">\n";
    echo 
    "<option value=\"art\">art</option>\n";
    echo 
    "</select>\n";
    echo 
    "<b>Suchbegriff:</b>\n";
    echo 
    "<select size=\"1\" name=\"suche\">\n";
    echo 
    "<option value\"action\">action</option><p>\n";
    echo 
    "<option value\"comedy\">comedy</option><p>\n";
    echo 
    "</select>";
    echo 
    "<input type=\"submit\" value=\"suche starten...\">\n";
    }
    else
        {
        if(
    $suche == "")
        
    $sql "SELECT *FROM filme;";
        else
        
    $sql "SELECT kurz FROM filme WHERE " $spalte " LIKE '" $suche "%';";
            if(
    mysql_connect($host$user))
                {
                echo 
    "Verbindung zu mysql hergestellt!<br>\n";
                    if(
    mysql_select_db($dbname))
                        {
                        echo 
    "Die Datenbank $dbname wurde ausgewält!<p>\n";
            
                        
    $erg = @mysql_query($sql);
                        if(
    $erg)
                            {
                            if(
    mysql_num_rows($erg)<=0)
                                {
                                echo 
    "Leider konnte kein Datensatz in der kategorie<br><b>" strtoupper($spalte) . "</b> mit dem Suchbegriff<b>"
                                
    strtoupper($suche) . "</b> gefunden werden!<p>\n";
                                unset(
    $set);
                                echo 
    "<a href=\"$PHP_SELF\">zur&uuml;ck zum Formular</a>\n";
                                }
                            else
                                {
                                echo 
    "<table border=\"1\">\n";
                                echo 
    "<tr>\n";
                                for(
    $i=0$i<mysql_num_fields($erg);$i++)
                                    {
                                    
    $feld mysql_field_name($erg$i);
                                    echo 
    "<th>" ucfirst($feld) . "</th>\n";
                                    }
                                echo 
    "</tr>";
                                while(
    $row mysql_fetch_row($erg))
                                    {
                                    echo 
    "<tr>";
                                    for(
    $i=0$i<mysql_num_fields($erg);$i++)
                                    echo 
    "<td>" $row[$i] . "</td>\n";
                                    echo 
    "<tr>\n";
                                    }
                                echo 
    "</table><p>\n";
                                unset(
    $set);
                                echo 
    "<a href=\"$PHP_SELF\">Zur&uuml;ck zur Suche</a>\n";
                                }
                            }
                            else
                            echo 
    "<br><i>Es konnten keine Datens&auml;tze gefunden weden.</i><br>\n";
                        }
                        else
                        echo 
    "<br><i>Verbindung zur Datenbank ist im Moment nicht m&ouml;glich</i><br>\n";
                        
    mysql_close();
                }
                else
                echo 
    "<br><i>Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.</i><br>\n";
            
            }
            
                    
                        
    ?>

  • #2
    Du tust ja so, als MÜSSTE 'art' unbedingt in einer Variable stehen ... muss aber nicht.
    Ich hab deinen Code mal etwas aufgearbeitet:

    PHP-Code:
    <?php
    // erstmal Verbindung & Fehlerausgabe kürzer schreiben
    mysql_connect($host$user)
      or die(
    "Verbindung zu mysql fehlgeschlagen!");
    mysql_select_db($dbname)
      or die(
    "Selektierung von Datenbank '$dbname' fehlgeschlagen!");

    // Wenn kein Post-Formular abgeschickt, dann
    if (!count($_POST))
    {
      echo 
    '<form method="post" action="'basename(__FILE__), '">
    <b>Suche nach</b> Art = 
      <select name="suche">
        <option value="">-- alle --</option>'
    ;
      
    // Alle verschiedenen Werte von `art` alphabetisch sortiert ...
      
    $erg mysql_query('select distinct art from filme order by art')
        or die (
    "'distinct'-Query fehlgeschlagen: "mysql_error());
      
    // ... als Optionen des Dropdowns auflisten
      
    while (list($value) = mysql_fetch_row($erg)) echo '
        <option value="'
    htmlentities($value), '">',
        
    htmlentities($value), '</option>';
      echo 
    '
      </select>
      <input type="submit" value="Suchen">
    </form>'
    ;
    }
    else
    {
      
    $where = ($suche mysql_escape_string($_POST['suche'])
        ? 
    " where art='$suche'" "");
      
    $erg mysql_query("SELECT * FROM filme $where");
        or die (
    "Such-Query fehlgeschlagen: ... <b>$where</b> -&gt; "mysql_error());
      if (
    $erg) ...
    }
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hallo,

      erstmal danke für deine promte antwort.

      Habe den code eigefügt, bekomme aber Parse_Fehler in Zeile 49.
      Hast du eine idee woran es liegen kann?

      Danke und Gruß





      PHP-Code:
      <?php
      // erstmal Verbindung & Fehlerausgabe kürzer schreiben
      mysql_connect($host$user)
        or die(
      "Verbindung zu mysql fehlgeschlagen!");
      mysql_select_db($dbname)
        or die(
      "Selektierung von Datenbank '$dbname' fehlgeschlagen!");

      // Wenn kein Post-Formular abgeschickt, dann
      if (!count($_POST))
      {
        echo 
      '<form method="post" action="'basename(__FILE__), '">
      <b>Suche nach</b> Art = 
        <select name="suche">
          <option value="">-- alle --</option>'
      ;
        
      // Alle verschiedenen Werte von `art` alphabetisch sortiert ...
        
      $erg mysql_query('select distinct art from filme order by art')
          or die (
      "'distinct'-Query fehlgeschlagen: "mysql_error());
        
      // ... als Optionen des Dropdowns auflisten
        
      while (list($value) = mysql_fetch_row($erg)) echo '
          <option value="'
      htmlentities($value), '">',
          
      htmlentities($value), '</option>';
        echo 
      '
        </select>
        <input type="submit" value="Suchen">
      </form>'
      ;
      }
      else
      {
        
      $where = ($suche mysql_escape_string($_POST['suche'])
          ? 
      " where art='$suche'" "");
        
      $erg mysql_query("SELECT * FROM filme $where");
          or die (
      "Such-Query fehlgeschlagen: ... <b>$where</b> -&gt; "mysql_error());  // ZEILE 49 !!!!!!!!!!
        
      if ($erg

                              {
                              if(
      mysql_num_rows($erg)<=0)
                                  {
                                  echo 
      "Leider konnte kein Datensatz in der kategorie<br><b>" strtoupper($spalte) . "</b> mit dem Suchbegriff<b>"
                                  
      strtoupper($suche) . "</b> gefunden werden!<p>\n";
                                  unset(
      $set);
                                  echo 
      "<a href=\"$PHP_SELF\">zur&uuml;ck zum Formular</a>\n";
                                  }
                              else
                                  {
                                  echo 
      "<table border=\"1\">\n";
                                  echo 
      "<tr>\n";
                                  for(
      $i=0$i<mysql_num_fields($erg);$i++)
                                      {
                                      
      $feld mysql_field_name($erg$i);
                                      echo 
      "<th>" ucfirst($feld) . "</th>\n";
                                      }
                                  echo 
      "</tr>";
                                  while(
      $row mysql_fetch_row($erg))
                                      {
                                      echo 
      "<tr>";
                                      for(
      $i=0$i<mysql_num_fields($erg);$i++)
                                      echo 
      "<td>";
                                      echo 
      "<a href=\"info2.php?ID=$row[0]\" target=\"_self\">" $row[1] . "</a>\n";
                                      echo 
      "</td>";
                                      echo 
      "<tr>\n";
                                      }
                                  echo 
      "</table><p>\n";
                                  unset(
      $set);
                                  echo 
      "<a href=\"$PHP_SELF\">Zur&uuml;ck zur Suche</a>\n";
                                  }
                              }
                              else
                              echo 
      "<br><i>Es konnten keine Datens&auml;tze gefunden weden.</i><br>\n";
                          }
                          else
                          echo 
      "<br><i>Verbindung zur Datenbank ist im Moment nicht m&ouml;glich</i><br>\n";
                          
      mysql_close();
                  }
                  else
                  echo 
      "<br><i>Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.</i><br>\n";
              
              }
              
      }                
                          
      ?>

      Kommentar


      • #4
        PHP-Code:
        $erg mysql_query("SELECT * FROM filme $where");  <= semikolon muss weg
            
        or die ("Such-Query fehlgeschlagen: ... <b>$where</b> -&gt; "mysql_error());  // ZEILE 49 !!!!!!!!!! 
        Kissolino.com

        Kommentar


        • #5
          Hat alles wunderbar geklappt danke für eure hilfe

          Kommentar

          Lädt...
          X