uplload - update Problem - Need Help

Flextone

Erfahrenes Mitglied
Hallo,

ich habe eine Script gebaut um ein Bild eines "Member" zu updaten.
Das Feld in der DB des Bildes ist "pimg".

Ich will bei der action "mempic_edit" das Bild hochladen, sowie das Feld "pimg" in der DB updaten.

Nur geht das ganze nicht.

Also INSERT geht das nur umgeschrieben als UPDATE nicht.

Kann mir wer helfen?

PHP:
	if($_POST[action] == "mempic_edit"){ 	
	$pimg = $_FILES['datei']['name'];
	move_uploaded_file($_FILES['datei']['tmp_name'],"../files/member/".$pimg);
	mysql_query("UPDATE u_member SET pimg = '$pimg' where id='".$_POST[id]."'");
	header("LOCATION: ?section=mem01");
	}

HTML:
<form action="<?php echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name"action" value="mempic_edit">
<input type="hidden" name="id" value="<?php echo $row[id]; ?>">
<p>Neues Bild:<br>
  <input type="file" name="datei">
</p>
<p>
  <input type="submit" name="Submit" value="Update">
</p>
</form>

Danke!
 
Speichere die Grafik lieber unter der ID des jweiligen Benutzers. So kann es nicht zum ungewollten Überschreiben einer Datei kommen. In der Datenbank könntest du dann den Media-Typen der Grafik speichern, um sie korrekt zu klassifizieren.
 
Probier mal Folgendes:
PHP:
if( isset($_POST['action']) && $_POST['action'] == 'mempic_edit' ) {
	$pimg = $_FILES['datei']['name'];
	$query = '
		UPDATE
		        `u_member`
		  SET
		        `pimg` = "'.mysql_real_escape_string($_FILES['datei']['name']).'"
		  WHERE
		        `id` = "'.mysql_real_escape_string($_POST['id']).'"
		';
	move_uploaded_file($_FILES['datei']['tmp_name'], '../files/member/'.$_SERVER['datei']['name'])
		or die('Datei konnte nicht verschoben werden!');
	mysql_query($query)
		or die(mysql_error());
	header('Location: ?section=mem01');
}
 
Da noch keine Rückmeldung erfolgt ist, ob der Source von Gumbo Besserung brachte, hätte ich noch eine Frage, die vielleicht das Problem verständlicher macht.

Du sagst, das es mit "INSERT" geht aber mit "UPDATE" nicht.
Verstehe ich das richtig, wenn du das bild einfach per insert in die Tabelle schreibst, das es geht (Bsp: INSERT INTO tabelle (id, bild) VALUES ('bla', 'blub')).
Aber wenn du es per Update machst, dann geht es nicht?

Nun, ich habe die Vermutung, das beim Abschicken des Formulars die Post Variable $_POST[id] nicht gesetzt ist (sprich, sie wird schon nicht im HTML Formular gesetzt) und dadurch der update Befehl: UPDATE a SET b=c WHERE id = '' rauskommt, und wohl kein Feld id in der DB leer ist.

Falls $_POST['id'] natürlich korrekt im PHP Teil ankommt, dann kanste den Ansatz natürlich vergessen

Gruss
 
Zurück