Übergabe wo steckt fehler?

Malaxo

Erfahrenes Mitglied
Daten in meiner Datenbank die ich editieren will mit einem Formular

PHP:
//benötigte variablen
$id_thema = @$_POST['id_thema'];
$beschreibung = @$_POST['beschreibung'];
$quelle = @$_POST['quelle'];
$link = @$_POST['link'];
$verfuegbarkeit = @$_POST['verfuegbarkeit'];
$del_hidden = @$_POST['del_hidden'];


Danach kommt die Funktion... in den Textfeldern hab ich schön noch alle werte von früher diese werden aber nicht übertragen. Keine ahnung wiso

PHP:
function edit(){
	$id_edit = @$_POST['id_edit'];
	$beschreibung_edit = @$_POST['beschreibung_edit'];
	$quelle_edit = @$_POST['quelle_edit'];
	$link_edit = @$_POST['link_edit'];
	$verfuegbarkeit_edit = @$_POST['verfuegbarkeit_edit'];
	echo $id_edit."blub";
	$query=mysql_query("SELECT * FROM kategorie
		WHERE id_thema = ".$_GET['id']."
	");
	(list($id_thema, $beschreibung, $quelle, $link, $verfuegbarkeit) = mysql_fetch_row($query))
	?>
	<tr>
		<td width="50"><?php echo $id_thema;?></td>
		<td width="200"><?php echo $beschreibung;?></td>
		<td width="200"><?php echo $quelle;?></td>
		<td width="200"><?php echo $link;?></td>
		<td width="200"><?php echo $verfuegbarkeit;?></td>
	</tr>
	<tr>
		<td width="50"><input type="text" name="id_edit" disabled="1" value="<?php echo $id_thema;?>" /></td>
		<td width="200"><input type="text" name="beschreibung_edit" value="<?php echo $beschreibung;?>" /></td>
		<td width="200"><input type="text" name="quelle_edit" value="<?php echo $quelle;?>" /></td>
		<td width="200"><input type="text" name="link_edit" value="<?php echo $link;?>" /></td>
		<td width="200">
			<select name="verfuegbarkeit_edit">
				<option value="fix">Fix</option>
				<option value="waehlbar">W&auml;hlbar</option>
			</select>
		</td>
		<td width="200" colspan="2"><input name="save" type="submit" value="Speichern" /></td>
	</tr>
	<?php
	if (isset($_POST['save'])){
		$query=mysql_query("UPDATE kategorie SET 
			id_thema = '$id_edit' , beschreibung = '$beschreibung_edit' , quelle = '$quelle_edit' , link = '$link_edit' , verfuegbarkeit = '$verfuegbarkeit_edit'
			WHERE id_thema = ".$_GET['id']."
		");
	}
}?>

Jetzt kommt das HTML

HTML:
<html>
<head>
<title>Admin Bereich Themenverwaltung - Reader</title>
</head>
<body>
<form name="addthema" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
	<table width="468" border="0" align="center">
		<tr>
			<td colspan="7" align="center"><b>&Uuml;bersicht</b></td>
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td>&nbsp;</td>
		</tr>
		<tr>
			<td>ID</td>
			<td>Beschreibung</td>
			<td>Quelle</td>
			<td>Link</td>
			<td>Verf&uuml;gbarkeit</td>
			<td colspan="2" align="center">Aktion</td>
		</tr>
Funktion "edit" wird aufgerufen

HTML:
</table>
</form>
</body>
</html>

Irgend etwas in der Funktion "edit" klappt nicht.

wen ich in der Funktion bei der Zeile von "echo $id_edit."blub";" dies eingebe

echo $id_thema."blub";

ist beides leer. Aber in den Textfeldern wird es noch übertragen.

Ich verzweifle bin schon lange an diesem problem.

Hoffe es ist verständlich.

PHP & MYSQL v 5
 
Hallo,
so wie ich das sehe, wird hier nirgends die ID des Datensatzes, welcher geändert werden soll übergeben.

mfg
forsterm
 
Es ist nur dieser eine Eintrag zu sehen. Es wird ja nur einer angegeben einmal in einer Tabelle und einmal zum editieren in Textfeldern.

oder meinst du die

PHP:
if (isset($_POST['save'])){
        $query=mysql_query("UPDATE kategorie SET 
            id_thema = '$id_edit' , beschreibung = '$beschreibung_edit' , quelle = '$quelle_edit' , link = '$link_edit' , verfuegbarkeit = '$verfuegbarkeit_edit'
            WHERE id_thema = ".$_GET['id']."
        ");
    }
}?>
 
Hallo,
da das Formular jedoch mit $_SERVER['PHP_SELF'] versendedt wird, geht die ID verloren, sprich nach dem Absenden des Formulars existiert $_GET['id'] nicht mehr.

mfg
forsterm
 
wenn die id nicht unbedingt über get reinkommen soll kannst das ja auch mit ins form rein packen und eben als post mitliefertn:

<input type="hidden" name="id" value="$id">

oder noch ne andere idee,weiss nicht obs geht aber als action mal so:

action="<? echo $_SERVER['PHP_SELF']."?id=$_GET['id']"; ?>">

ist vielleicht etwas unsauber aber ich habs zb. bei mir ähnlich nur das ich die datei festangebe
 
Bin näher dran:)

Jetzt wird nichts übertragen die Variablen im Query stimmen noch nicht. Das noch und es läuft:)

Funktion

PHP:
function edit(){
	echo $_GET['id']."blub";
	$id_edit = @$_GET['id_edit'];
	$beschreibung_edit = @$_GET['beschreibung_edit'];
	$quelle_edit = @$_GET['quelle_edit'];
	$link_edit = @$_GET['link_edit'];
	$verfuegbarkeit_edit = @$_GET['verfuegbarkeit_edit'];
		
	$query=mysql_query("SELECT * FROM kategorie
		WHERE id_thema = ".$_GET['id']."
	");
	(list($id_thema, $beschreibung, $quelle, $link, $verfuegbarkeit) = mysql_fetch_row($query))
	?>
	<tr>
		<td width="50"><?php echo $id_thema;?></td>
		<td width="200"><?php echo $beschreibung;?></td>
		<td width="200"><?php echo $quelle;?></td>
		<td width="200"><?php echo $link;?></td>
		<td width="200"><?php echo $verfuegbarkeit;?></td>
	</tr>
	<tr>
		<td width="50"><input type="text" name="id_edit" disabled="1" value="<?php echo $id_thema;?>" /></td>
		<td width="200"><input type="text" name="beschreibung_edit" value="<?php echo $beschreibung;?>" /></td>
		<td width="200"><input type="text" name="quelle_edit" value="<?php echo $quelle;?>" /></td>
		<td width="200"><input type="text" name="link_edit" value="<?php echo $link;?>" /></td>
		<td width="200">
			<select name="verfuegbarkeit_edit">
				<option value="fix">Fix</option>
				<option value="waehlbar">W&auml;hlbar</option>
			</select>
		</td>
		<td width="200" colspan="2"><input name="save" type="submit" value="Speichern" /></td>
	</tr>
	<?php
	if (/*isset($_POST['save']) AND */isset($_GET['id'])){
		$query=mysql_query("UPDATE kategorie SET 
			beschreibung = '$beschreibung_edit' , quelle = '$quelle_edit' , link = '$link_edit' , verfuegbarkeit = '$verfuegbarkeit_edit'
			WHERE id_thema = ".$_GET['id']."
		");
		echo "eintrag editiert";
	}
}

Form

HTML:
<form name="addthema" method="POST" action="del_edit.php?id=<? echo $_GET["id"]; ?>">

Diese Variablen gehen auch verlohren. Wie bring ich die wieder da rein? GET / POST schon versucht aber evt. mach ich noch was falsch.
Danke für die hilfe
 
Zurück