Dropdown aus Datenbank einträgen

HawkEyeWolf

Mitglied
Ich will, muss, ein Script schreiben, mit dem es möglich sein soll aus einer ungeordneten(und absolut chaotischen) Datenbank, ähnliche Datensätze herauszufiltern und diese per Dropdowns einer neuen Tabelle zugewiesen werden.

hier der Code mein Bisheriger Code:

PHP:
$result = mysql_query("Select * FROM test, where email='$mail' or vname='$vname' and name='$name' group by email, name, vname")or die (mysql_error());
  while ($daten = mysql_fetch_array($result))
  {
  echo "</td><td align=right>".$daten[ID]."</td>... "#achtung stark gekürzt
  $num=$num+1;
  }  #diese Tabelle dient einzig und allein dazu, dem Bearbeitenden einen überlick über die verfügbaren Daten zu geben,so dass dieser sie oderntlich zuordnen kann
echo "<form action='speichern.php' method='POST' name='Daten'>";
echo "<select name='ID' size='$num'>".options(ID)."</select> "# auch hier stark gekürzt

die Funktion options(feld)soll hierbei den nötigen Code enthalten, von dem ich nicht weiß wie er zu formulieren ist.
 
Versuchs so:

PHP:
$result = mysql_query("Select * FROM test, where email='$mail' or vname='$vname' and name='$name' group by email, name, vname")or die (mysql_error()); 
  while ($daten = mysql_fetch_array($result)) 
  { 
  echo "</td><td align=right>".$daten['ID']."</td>... "#achtung stark gekürzt 
  $ID_a[]=$daten['ID'];
  $num=$num+1; 
  }  #diese Tabelle dient einzig und allein dazu, dem Bearbeitenden einen überlick über die verfügbaren Daten zu geben,so dass dieser sie oderntlich zuordnen kann 
echo "<form action='speichern.php' method='POST' name='Daten'>"; 
echo "<select name='ID' size='$num'>".options($ID_a)."</select> "# auch hier stark gekürzt


PHP:
function options($id){
    
    $sql="SELECT * FROM `test` WHERE";
    $count=count($id);
    $x=1;
    foreach($id as $id_v){
    
        $sql.=" id='".$id_v."'";
        if($x < $count){
            $sql.=" AND";
        }
        $x++;    
    }
    $sql=mysql_query($sql);
    $options="";
    while($result=mysql_fetch_array($sql)){
        
        if($result['name'] != ""){
            $ausgabe=$result['name'];
        }elseif($result['vname']!=""){
            $ausgabe=$result['vname'];
        }elseif($result['email']!=""){
            $ausgabe=$result['email'];
        }
        $options.="<option value='".$result['id']."'>".$ausgabe."</option>";

    }
    
    if($options==""){

        $options.="<option value='leer'>Keine Daten vorhanden</option>";

    }

    return $options;

}

Ist nicht getestet aber so würd ichs machen.
 
ok, ich hätte den Code vielleicht nicht so stark kürzen sollen.

Die Tabellen von denen hier die Rede ist umfassen 21 Spalten(Userdatenerfassung). Das Problem ist, das manche user mehrere Einträge haben,in denen teilweise das eine ioder das andere drinsteht, was in den anderen DS nicht steht. Die Aufgabe des Scriptes soll nun sein, dem Bearbeiter all diese Schnipsel(nach den Suchkriterien email, oder Vorname und Nachname) auszugeben(wird auf einer früheren Seite gemacht wo dann per Link auf die Seite mit obrigen Code die email und Namen übergeben werden), damit dieser die dann per Dropdowns bearbeiten kann. Da aber die Anzahl der und vor allem der Inhalt der Datensätze nicht feststeht bräuchte ich eine Art dynamische Verwaltung der Select-Options. Der Vorschlag von Nero sieht durchaus vielversprechend aus, ist mir ehrlich gesagt noch zu spezifisch, und vor dem Schreibaufwand der sich daraus ergeben würde, graust es mir(jaich bin halt faul).
 
Naja, mein Script sollte nur als Denkanstoß wirken. Denn für größere Projekte (so wie deins eins zu sein scheint) musst du ohnehin selber Handanlegen. Aber wenn du mir genauer Beschreiben könntest wie das Auswahmenü auszusehen hat, kann ichs ja nochma versuchen!
 
Kurz gesagt:

In der Tabelle werden einfach alle zugehörigen Datensätze angezeigt. Unter die Tabelle soll für jede Spalte ein Dropdown stehn, wo man die Einträge der Spalten darüber auswählen kann, um das ganze dann auf eine nächste Seite zum Abspeichern übergeben zu werden.

Mir ist schon klar, dassich da selber Hand anlegen muss(leider ^^), zu meiner Schnde muss ich gestehn, dass ich von SQL mehr Ahnung hab als von PHP(beschäftige mich auch erst seit nem knappen viertel Jahr damit)
 
Dann wäre meine Funktion schon die Passende!

Du hast eine Tabelle in der Spalten sind, welche die einzellnen Datensätze enthalten. Also 1 Spalte enthält 1 Datensatz welcher 1 ID hat. Diese pack ich alle zusammen in ein Array, um sie so leichter an die Funktion zu übergeben. In dieser Funktion mache ich dann eine Abfrage in der alle Datensätze aufgerufen werden, deren ID sich im Array befindet. Diese Abfrage wird nur deswegen gemacht um einen vernünftigen Namen in der Dropdownliste stehen zu haben. Das ganze würde auch so gehen:

PHP:
function options($id){ 
     
    $options="";
    $x=1;
    foreach($id as $id_v){ 
     
        $options.="<option value='".$id_v."'>Tabelle Nr.".$x."</option>"; 
        $x++;

    } 
     
    if($options==""){ 

        $options.="<option value='leer'>Keine Daten vorhanden</option>"; 

    } 

    return $options; 

}
 
Danke dir, für deine Hilfe, es klappt fast perfekt. Ich hab zwar das ganze etwas umschrieben müssen um es meine Aufgabenstellung anzupassen, aber das is ja meinstens so ^^.
 
Zurück