# [MYSQL] Auswahl per Dropdown



## Silent Hunter (23. August 2005)

Hallo liebe Gemeinde und Programmierer,

als erstes möchte ich Euch mitteilen das ich ein vollkommener Newbie in Sachen MYSQL bin und mich erst seit kurzen damit beschäftige. Ich habe viele Sachen ausprobiert ubnd nachgelesen, aber nun komme ich leider nicht weiter und hoffe das mir jemand helfen kann. 
Ich habe folgendes Problem:
Aus meiner erstellten MYSQL DB heraus möchte ich nun, in einem Formular per Dropdown, einen jeweiligen Inhalt auswählen und dann zu der jeweiligen ID springen um sie über ein weiteres Formular zu editieren bzw. zu löschen.

Die Auswahl als solches und den Inhalt im Dropdownmenü anzuzeigen habe ich hinbekommen, allerdings, wenn eine Auswahl getroffen wird, z.B. bei 4 Auswahlmöglichkeiten, springt er nicht zur entsprechenden ID sondern nimmt immer die letzte ID die in der Tabelle eingetragen ist. Um das ganze deutlicher zu machen poste ich mal den Code:


```
<?php
include("db.php");

// Datenbank auslesen
@mysql_connect($host, $user, $pass) OR die(mysql_error());
mysql_select_db($db) OR die(mysql_error());
$sql = "SELECT * FROM test_table ORDER BY test_id";
$result = mysql_query($sql) OR die(mysql_error());

while($row = mysql_fetch_object($result))
    {
$id = $row->id;
$get .= '<option>'.$row->test_id.'</option>';
}

?>
<form action="admin_edit.php?id=<? echo $id; ?>" method="post">
<select size="1" name='test_id[]' >
<option selected><? echo $get; ?></option>
<input type="submit" name="send" value="get it">
```

Ich würde mich freuen wenn mir jemand behilflich sein könnte, das Problem zu lösen bzw. mir etwas Hilfestellung gibt.

Besten Dank im Vorraus

MFG SH


----------



## Slizzzer (24. August 2005)

Hallo!

Vielleicht liegt es daran:

<option selected><? echo $get; ?></option>

nimm mal das "selected" raus.

Hab's jetzt nur mal überflogen. Demnach müßte im Quelltext Deines Kombifeldes bei jeder Option "selected" stehen.


----------



## Silent Hunter (24. August 2005)

Hi Slizzzer,

danke für Deine Antwort, ich habe nun das "selected" entfernt, aber leider ohne Erfolg.
Wenn ich eine Auswahl über das Dropdownmenü machen will, springt er immernoch, egal ob Auswahl 1,2,3 usw. immer zur ID des letzten Eintrags in der DB. Ich weiß das es funktionieren müsste, da ich so etwas ähnliches schonmal in einem Script gesehen habe, leider lässt es sich aber auf meinem nicht anwenden, daher die Frage ob es evtl. noch weitere Vorschläge gibt.

Besten Dank schonmal.

Greez SH


----------



## Julian Maicher (24. August 2005)

Poste doch mal den resultierenden HTML-Code.


----------



## Silent Hunter (24. August 2005)

Hi suye,

dieser Code entsteht nachdem ich eine Auswahl getroffen habe und er zur letzten ID springt.


```
<form action="test.php?id=5" method="post">
<select size="1" name=test_id[]' >
<option><option>test1</option><option>test2</option><option>test3</option></option>
<input type="submit" name="send" value="get it">
```

Ich hoffe das er weiterhelfen kann.

PS.: Auch wenn ich keine Auswahl treffe und auf "get it" klicke, springt er zur letzten ID.


----------



## Julian Maicher (24. August 2005)

Fällt dir selber was auf? Die erzeugten option-Tags sind nochmals von einem option-Tag umfasst.
Richtig wäre:

```
<select size="1" name=test_id[]'>
  <option>test1</option><option>test2</option><option>test3</option>
</select>
```


----------



## Slizzzer (24. August 2005)

<option value='id'>DeineOption</option>

ohne Value keine Auswahl!


----------



## Julian Maicher (24. August 2005)

Stimmt, das kommt auch noch dazu


----------



## Silent Hunter (24. August 2005)

Hab nun 

```
<option><? echo $get; ?></option>
```
in 

```
<option value='id'><? echo $get; ?></option>
```
abgeändert, allerdings weiterhin ohne Erfolg.

Nun die Frage, was mache ich falsch    ?
Wie gesagt bin vollkommener Newbie auf dem Gebiet  

Im Quelltext erscheint wieder der doppelte "option-Einschluss"


----------



## Julian Maicher (24. August 2005)

Also da könnte man wirklich selber drauf kommen ...
Also:

```
<?php
include("db.php");

// Datenbank auslesen
@mysql_connect($host, $user, $pass) OR die(mysql_error());
mysql_select_db($db) OR die(mysql_error());
$sql = "SELECT * FROM test_table ORDER BY test_id";
$result = mysql_query($sql) OR die(mysql_error());

while($row = mysql_fetch_object($result))
    {
$id = $row->id;
$get .= '<option value='.$row->test_id.'>'.$row->test_id.'</option>';
}

?>
<form action="admin_edit.php?id=<? echo $id; ?>" method="post">
<select size="1" name='test_id[]' ><? echo $get; ?></select>
<?
// Wozu hier das ganze in einem option-Tag ausgeben? Alle nötigen option-Tags beinhaltet $get
?>
<input type="submit" name="send" value="get it">
```


----------



## Silent Hunter (24. August 2005)

Entweder ich bin zu d... für die Materie oder ich weiß auch nicht.
Ich habe nun das Script nach Deinen Angaben angepasst und sobald ich die test.php aufrufe, diese mir das Dropdownmenü anzeigt und ich NICHT auf "get it" klicke, erscheint schon da im Quelltext:


```
<form action="test.php?id=5" method="post">
<select size="1" name=test_id[]' ><option value=test1>test1</option><option value=test2>test2</option><option value=test3>test3</option></select>
<input type="submit" name="send" value="get it">
```

Klar das er dann bei irgendeinem Select immer zur id=5 spingt.
Ich verzweifle langsam da ich schon seit drei Tagen damit kämpfe.
Irgendwo muss doch der Wurm drin sein


----------

