Hm, ich sehe gerade einen dummen Fehler von mir:
echo '<option value="$mga_id">$mga_id $mga_bezeichnung</option>';
Kann nicht funktionieren, weil PHP Variablen nur in Strings mit doppelten Anführungszeichen ersetzt. Es muss natürlich
echo "<option value='$mga_id'>$mga_bezeichnung</option>";
heißen. Oder die Variante von dedlfix, leicht variiert (ich unterstelle, dass deine ID in der Datenbank ein integer-Wert ist; trotzdem muss sie als %s formatiert werden weil mysql/mysqli die Ergebnisse als strings liefert):
printf('<option value="1$%s">1$%s 2$%s</option>', $row_ma[0], htmlspecialchars($row_ma[1]));
Die Frage mit der ID 1 zu klären ist schwierig. Zunächst mal muss ich erraten, was Du eigentlich tust, weil deine Beschreibung sehr, nun, kontextfrei und unsortiert ist. Aber ich probiere es mal mit dem, was ich erraten zu haben glaube :)
Den INSERT machst Du ja sicherlich erst, nachdem der Anwender was ausgewählt und das Form abgeschickt hat. D.h. zwischen Erzeugen des SELECT Elements und dem INSERT gibt es einen Roundtrip Server -> Browser -> Server. Den müssten wir schrittweise überprüfen.
-
Sieht das Select Element im Browser richtig aus? Wie sieht das erzeugte HTML für das Formular aus, in dem der <select> steht? Kannst Du das mal rauskopieren? Oder - falls die Seite, an der du baust, öffentlich zugänglich ist, einen Link dahin posten?
-
Was sagt der Netzwerktrace des Browsers über die Daten, die abgeschickt werden? Den findest Du in den Entwicklerwerkzeugen deines Browsers (hat eigentlich jeder moderne Desktop-Browser an Bord).
-
Wie sieht der Code aus, mit dem Du die Antwort auf das Form verarbeitest?
Wenn diese Fragen nicht zu dem passen, was Du tust - ok. Was tust Du statt dessen?
Rolf