ID des DropDown als DatensatzID nutzen

dodge11

Mitglied
Hallo,

ich habe eine Frage zu einem Problem, an dem ich schon lange arbeite aber es einfach nicht gelöst kriege.

Ich möchte die ID die ich mittels eines DropDown auswähle, auch gleichzeitig als Datensatz ID nutzen. Das heißt, wenn ich im DropDown ID 1 auswähle, möchte ich die Daten in den Datensatz mit der ID 1 schreiben. Ist so etwas überhaupt möglich

Hier mal der Codeschnipsel dazu

PHP:
<?php

    if( $SERVER['REQUEST_METHOD'] == 'POST' && isset($_GET['do']) && $_GET['do'] == 'update' ) {
        $query = '
            UPDATE
                    `mbjugend_spiel`
              SET
                    `haheim` = "'.mysql_real_escape_string($_POST['haheim']).'",
                    `hagast` = "'.mysql_real_escape_string($_POST['hagast']).'",
                    `egheim` = "'.mysql_real_escape_string($_POST['egheim']).'",
                    `eggast` = "'.mysql_real_escape_string($_POST['eggast']).'",
              WHERE
                    `spiel_id` = '.intval($_POST['spielid']).'
            ';
        $result = mysql_query($query)
            or die(mysql_error());
        if( mysql_affected_rows() > 0 ) {
            echo 'Daten erfolgreich aktualisiert.';
        }
    }

    $query = '
        SELECT
                `spiel_id`
          FROM
                `mbjugend_spiel`
        ';
    $result = mysql_query($query)
        or die(mysql_error());

?>

<form name="spiel" action="index.php" method="GET">
					<select name="spiel" onChange="submit ();">				
						<option value="0">
						Auswahl
						</option>
						<option value="1">
						Aachen
						</option>
						<option value="10">
						Dortmund
						</option>
						<option value="9">
						Bremen
						</option>

					</select>
					
</form>
<form action="index.php?do=update" method="post">
				<?php
				if ($_GET['spiel'] != "") {
					?>
					<input type="hidden" name="spielid" value="<?=$_REQUEST['spiel']?>">
					<?php
				}
				?>
				<td align="center"><b>Halbzeitergebnis:</b></td>
				<td align="center"><input type="text" name="<?=$low['spiel_id']?>_haheim" size="3" value="0" maxlength="3"></td>
				<td align="center"><b>:</b></td>
				<td align="center"><input type="text" name="<?=$low['spiel_id']?>_hagast" size="3" value="0" maxlength="3"></td>
				<td align="center">&#160</td>
				<td align="center"><b>Endergebnis:</b></td>
				<td align="center"><input type="text" name="<?=$low['spiel_id']?>_egheim" size="3" value="0" maxlength="3"></td>
				<td align="center"><b>:</b></td>
				<td align="center"><input type="text" name="<?=$low['spiel_id']?>_eggast" size="3" value="0" maxlength="3"></td>
			</tr>
		
		<input type="reset" value="Spiel reset"></input>
		<input type="submit" value="Spiel speichern"></input>
</form>

Vielen Dank für eure Hilfe...

gruß
Christian
 
Wenn die ID mit "Auto Index" (auto_increment) arbeitet, wohl eher nicht.
Denn in diesem Fall wird die ID automatisch von MYSQL vergeben.
Wenn das nicht der Fall sein sollte, sehe ich da überhaupt kein Problem.
 
nein die ID wird nicht automatisch vergeben. Das habe ich bewusst nicht gemacht, denn die ID im DropDown ist automatisch auch die ID im Spielbericht..... so lässt sich alles schön zusammen auslesen......

Aber so funktioniert es nicht leider nicht.......
 
Versteh ich das richtig, du möchtest die übergebende ID aus dem Drop-Down-Menü als Referenz-Id in der Datenbank haben?
 
Gibt es eine forlaufende Nummerierung in der Datenbank, was immer zu empfehlen ist - auch für spätere Updates der Datensätze?
 
Ich verstehe das Problem nicht, die Spiel-Select-Liste erstellst du einfach dynamisch aus deiner Spieltabelle mit der ID des Spieles als Value. Was mich wundert ist:
Woher kommt
PHP:
$low['spiel_id']
?
Warum nimmst du erst
PHP:
$_GET['spiel']
und dann
PHP:
$_REQUEST['spiel']
?
Bei den Inputs vergibst du einen dynamischen Namen
PHP:
$low['spiel_id'].'_daheim'
, beim Update-Query liest du aber über die POST-Superglobale nur
PHP:
$_POST['daheim']
aus?
Dynamische Namen machen nur bei vielen Forms auf einer Seite Sinn (wenn überhaupt). Da du aber nur eine Form pro Seite hast (abgesehen von der Spielauswahl) ist dies unnötig.
flooo
 
Was soll die zweite Datenbankabfrage?
Die Formulare können übrigens zusammengefasst werden:
HTML:
<form action="index.php?do=update" method="post">
	<p><select name="spielid">
		<option value="1">Aachen</option>
		<option value="10">Dortmund</option>
		<option value="9">Bremen</option>
	</select></p>
	<p><label>Halbzeitergebnis: <input type="text" name="haheim" size="3" value="0" maxlength="3">:<input type="text" name="hagast" size="3" value="0" maxlength="3"></label></p>
	<p><label>Endergebnis: <input type="text" name="egheim" size="3" value="0" maxlength="3">:<input type="text" name="eggast" size="3" value="0" maxlength="3"></label></p>
	<p><input type="reset" value="Eingaben zurücksetzen"><input type="submit" value="Eingaben Speichern"></p>
</form>
 
also hier nochmal der komplette Codeabschnitt ungekürzt, ich denke jetzt wird sich das selbst erklären...

PHP:
<?php

    if( $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_GET['do']) && $_GET['do'] == 'neuespiel' ) {
        $query = '
            INSERT INTO
                    `mbjugend_spiel`
              SET
                    `spiel_id` = "'.mysql_real_escape_string($_POST['spiel_id']).'",
					`halle`    = "'.mysql_real_escape_string($_POST['halle']).'",
                     `datum`    = "'.mysql_real_escape_string($_POST['datum']).'",
					`uhrzeit`    = "'.mysql_real_escape_string($_POST['uhrzeit']).'",
					`heim`    = "'.mysql_real_escape_string($_POST['heim']).'",
                     `gast`    = "'.mysql_real_escape_string($_POST['gast']).'",
					`haheim`    = "0",
					`hagast`    = "0",
					`egheim`    = "0",
					`eggast`    = "0"

            ';
        mysql_query($query);
        if( mysql_affected_rows() > 0 ) {
            echo 'Neues Spiel gespeichert!';
        }
    }

?> 

<?php

    if( $SERVER['REQUEST_METHOD'] == 'POST' && isset($_GET['do']) && $_GET['do'] == 'update' ) {
        $query = '
            UPDATE
                    `mbjugend_spiel`
              SET
                    `haheim` = "'.mysql_real_escape_string($_POST['haheim']).'",
                    `hagast` = "'.mysql_real_escape_string($_POST['hagast']).'",
                    `egheim` = "'.mysql_real_escape_string($_POST['egheim']).'",
                    `eggast` = "'.mysql_real_escape_string($_POST['eggast']).'",
              WHERE
                    `spiel_id` = '.intval($_POST['spielid']).'
            ';
        $result = mysql_query($query)
            or die(mysql_error());
        if( mysql_affected_rows() > 0 ) {
            echo 'Daten erfolgreich aktualisiert.';
        }
    }

    $query = '
        SELECT
                `spiel_id`
          FROM
                `mbjugend_spiel`
        ';
    $result = mysql_query($query)
        or die(mysql_error());

?>
<div align="left">
<form name="spiel" action="index.php" method="GET">
					<select name="spiel" onChange="submit ();">				
						<option value="0">
						Auswahl
						</option>
						<option value="1">
						Aachen
						</option>
						<option value="10">
						Dortmund
						</option>
						<option value="9">
						Bremen
						</option>

					</select>
					
</div>
	
		<table align="center" border="2" bordercolor="0000FF">
			<tr>
				<td align="center" colspan="4">
			<?php
	if( !empty($_REQUEST['spiel'])){
	$query = ' SELECT `heim` FROM `mbjugend_spiel` WHERE `spiel_id` = '.intval($_REQUEST['spiel']).' ';
	$result = mysql_query($query) or die(mysql_error());
	while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
	print $row["heim"]. $row["mbjugend_spiel"] . $row["spiel_id"];
}

	mysql_free_result($result);
}
 
?> 
			</td>
			<td>
			<b>:</b>
			</td>
			<td align="center" colspan="4">
			<?php
	if( !empty($_REQUEST['spiel'])){
	$query = ' SELECT `gast` FROM `mbjugend_spiel` WHERE `spiel_id` = '.intval($_REQUEST['spiel']).' ';
	$result = mysql_query($query) or die(mysql_error());
	while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
	print $row["gast"]. $row["mbjugend_spiel"] . $row["spiel_id"];
}

	mysql_free_result($result);
}
 
?> 
</form>
				</td>
			</tr>
			<tr>
				<td align="center">&#160</td>
				<td align="center">Heim</td>
				<td align="center">&#160</td>
				<td align="center">Gast</td>
				<td>&#160</td>
				<td align="center">&#160</td>
				<td align="center">Heim</td>
				<td align="center">&#160</td>
				<td align="center">Gast</td>
			</tr>
			<tr>
		<form action="index.php?do=update" method="post">
				<?php
				if ($_GET['spiel'] != "") {
					?>
					<input type="hidden" name="spielid" value="<?=$_REQUEST['spiel']?>">
					<?php
				}
				?>
				<td align="center"><b>Halbzeitergebnis:</b></td>
				<td align="center"><input type="text" name="haheim" size="3" value="0" maxlength="3"></td>
				<td align="center"><b>:</b></td>
				<td align="center"><input type="text" name="hagast" size="3" value="0" maxlength="3"></td>
				<td align="center">&#160</td>
				<td align="center"><b>Endergebnis:</b></td>
				<td align="center"><input type="text" name="egheim" size="3" value="0" maxlength="3"></td>
				<td align="center"><b>:</b></td>
				<td align="center"><input type="text" name="eggast" size="3" value="0" maxlength="3"></td>
			</tr>
		</table>
		<br>
		<br>
		<div align="center">
		<input type="reset" value="Spiel reset"></input>
		<input type="submit" value="Spiel speichern"></input>
		</div>
		</form>

<form action="index.php?do=neuespiel" method="post">
			<table align="left">
				<tr>
					<th>
						Neue Spielpaarung:
					</th>
				</tr>
				<tr>
					<td>
						Spielnummer:
					</td>
					<td>
						<input type="text" name="spiel_id">
					</td>
				</tr>
				<tr>
					<td>
						Halle:
					</td>
					<td>
						<input type="text" name="halle">
					</td>
				</tr>
				<tr>
					<td>
						Datum:
					</td>
					<td>
					<input type="text" name="datum">
					</td>
					
				</tr>
				<tr>
					<td>
						Uhrzeit:
					</td>
					<td>
						<input type="text" name="uhrzeit">
					</td>
				</tr>
				<tr>
					<td>
						Heim:
					</td>
					<td>
						<input type="text" name="heim">
					</td>
				</tr>
				<tr>
					<td>
						Gast:
					</td>
					<td>
						<input type="text" name="gast">
					</td>
				</tr>
				<tr>
					<td align="center">
						<input type="submit" value="Spielpaarung speichern">
					</td>
				</tr>
			</table>
		</form>
 
Zuletzt bearbeitet:
Zurück