Dropdown-Feld aus Datenbank füllen

Hi,

benenne Deine Selectboxen halt nach den Tabellen ("hersteller", "artikel",...) und übergib statt dem statischen box=... dynamisch einen Parameter mit dem Namen der Selectbox (z.B. hersteller=). Dann kannst Du in Deinem PHP-Script unterscheiden, ob z.B. $_GET['hersteller'] oder $_GET['artikel'] gesetzt ist und dementsprechend die Daten aus den Tabellen holen.

LG
 
Hi,

wo ist das Problem? :confused:
Die Auswahllisten werden doch vom PHP-Script generiert. Wo besteht da die Schwierigkeit, per [phpf]echo[/phpf] den Wert des Name-Attributs auszugeben, je nachdem, welche Tabelle gerade gefragt war?

LG
 
hey leute,

habe mir das hier durchgelesen und versuche es selbst zu schaffen, doch bekomme ich lediglich den senden button zusehen ohne auch nur ein einziges dropdown menu.

Meine db sieht wie folgt aus:

Id | hersteller | modell | aufuehrung

das script dazu:

PHP:
<?php
//box.php

include("../ink/db2.php");
  
    
function make_box($parent)
{
  $items=0;
  $box='';
  
  if($parent)
    {
      $sql= mysql_query("SELECT hersteller,modell,ausfuehrung FROM fahrzeuge WHERE hersteller = $parent OR modell = $parent order by modell ASC" )
            or die(mysql_error());
      
      
      while($res=mysql_fetch_assoc($sql))
            {
              switch($res['hersteller']==$parent)
                {
                  case TRUE:
                        $box='<select name="box['.$res['ausfuehrung'].']" onchange="request_data(this) ">
                              <option value="-1">Auswahl</option>';
                    continue;
                  
                  
                  case FALSE:
                        $items=1;
                        $box.='<option value="'.$res['hersteller'].'">';
                        $box.=htmlentities($res['ausfuehrung']);
                        $box.='</option>';
                    continue;

                }
            }
            
            return(($items) 
              ? $box.'</select>'
              : '<input type="submit">');
    }
    
    return('');
  
}
       if(@count($_POST['box'])>0)
    { 
      end($_POST['box']);
      $sql = mysql_query( "SELECT ausfuehrung FROM fahrzeuge WHERE hersteller = ".$_POST['box'][key($_POST['box'])])
             or die(mysql_error());
            
      $res = mysql_fetch_row($sql);
      echo $res[0];
    }  


@print(make_box((int)$_GET['box']));
  
?>

könnt ihr mir sagen, was ich falsch gemacht habe?

lg
 
So habe die ganze nacht weiter getüfftelt und ein etwas anderes ergebniss erhalten, das script sieht nun wie folgt aus:

PHP:
<?php
//box.php
error_reporting(E_ALL);
include("../ink/db2.php");
  

function make_box($parent)
{
  $items=0;
  $box='';
  
  if($parent)
    {
      $sql= mysql_query("SELECT hersteller,modell,ausfuehrung FROM fahrzeuge WHERE hersteller = $parent OR modell = $parent order by modell ASC" )
            or die(mysql_error());
      
      
      while($res=mysql_fetch_assoc($sql))
            {
              switch($res['hersteller']==$parent)
                {
                  case TRUE:
                        $box='<select name="box['.$res['ausfuehrung'].']" onchange="request_data(this) ">
                              <option value="-1">Auswahl</option>';
                    continue;
                  
                  
                  case FALSE:
                        $items=1;
                        $box.='<option value="'.$res['hersteller'].'">';
                        $box.=htmlentities($res['ausfuehrung']);
                        $box.='</option>';
                    continue;

                }
            }
            
            return(($items) 
              ? $box.'</select>'
              : '<input type="submit">');
    }
    
    return('');
  
}

@print(make_box((int)$_GET['box']));
    if(@count($_POST['box'])>0)
    { 
      end($_POST['box']);
      $sql = mysql_query( "SELECT hersteller FROM fahrzeuge WHERE hersteller = ".$_POST['box'][key($_POST['box'])])
             or die(mysql_error());
            
      $res = mysql_fetch_row($sql);
      echo $res[0];
    } 

?>

ich erhalte nun die daten die eigentlich im dritten dropdown auftreten sollen.
Weiter ist nun der sende button verschwunden.

Ich stehe wirklich ratlos der ganzen sache gegenüber.
error_reporting(E_ALL);
zeigt mir keine Fehler an.

lg
 
Zurück