Dateiname nach dem Hochladen speichern!

Probier mal Folgendes:
PHP:
<?php

	include 'connect.php';
	mysql_select_db('galerie') or die('Datenbank konnte nicht ausgewählt werden.');

	if( isset($_POST['submit:hochladen']) ) {

		foreach( $_FILES['bilder']['error'] as $key => $error ) {
			if( $error == UPLOAD_ERR_OK ) {
				move_uploaded_file($_FILES['bilder']['tmp_name'][$key], 'phptmp/bilder/'.$_GET['galerie'].'/'.$_FILES['bilder']['name'][$key]);
				$query = "
					INSERT INTO
					        `bilder`
					  SET
					        `datei`   = '".mysql_real_escape_string($_FILES['bilder']['name'][$key])."',
					        `galerie` = '".mysql_real_escape_string($_GET['id'])."'
					";
				mysql_query($query);
			}
		}

	}

	if( isset($_POST['anzahl']) && (int)$_POST['anzahl'] > 0 ) {

?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<p>Pictures:</p>
<?php
		for($i=0; $i<$_POST['anzahl']; $i++) {
			echo '<p><input type="file" name="bilder[]"></p>';
		}
?>
	<p><input type="submit" name="submit:hochladen" value="Hochladen"></p>
</form>
<?php

	} else {

?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
	<p><label for="text:anzahl">Anzahl der hochzuladenen Bilder</label><br>
		<input type="text" id="text:anzahl" name="anzahl" size="5"></p>
	<p><input type="submit" name="submit:bilderanzahl" value="Senden"><input type="reset" value="Zurücksetzen"></p>
</form>
<?php

	}

?>
 
Zuletzt bearbeitet:
Hi,
das klappt leider auch nicht :(
Ich teste mal nen bissle rum und dann hoffe ich, dass das funktioniert oder das noch jemand nen Geistesblitz hat und mir sagen kann wieso das nicht läuft.
Wenn ich vorher nen Geistesblitz haben sollte markier ich das natürlich als erledigt ;)
 
Die Daten werden nich in den Ordner hochgeladen und auch nicht in der Datenbank gespeichert..
Der Fehler muss ja hier irgendwo liegen :
PHP:
	foreach ($_FILES["bilder"]["error"] as $key => $error) {
	   if ($error == UPLOAD_ERR_OK) {
		   $tmp_name = $_FILES["bilder"]["tmp_name"][$key];
		   $name = $_FILES["bilder"]["name"][$key];
		   move_uploaded_file($tmp_name, "phptmp/bilder/".$_GET['galerie']."/$name");
	   }
	}

	$galerie = $_GET['id'];
	for($i=0;$i<$_POST['anzahl'];$i++ )	
	{
	$name = $_FILES["bilder"]["name"]["$i"];
	$sql = mysql_query("INSERT INTO bilder (datei, galerie) VALUES ('$name','$galerie')");
	}
Jemand meinte ich würde bei der foreach-Schleife nen Index ansprechen und keineVariable, aber ich kapier nicht was er damit meint... :confused: ]
 
Hast du schon meinen Vorschlag ausprobiert?

Falls dieser ebenfalls nicht funktioniert, solltest du zwischendurch Dummy-Ausgaben machen, um zu prüfen, bis wo das Skript läuft.
 
svennson hat gesagt.:
Hi,
das klappt leider auch nicht :(

Hatte deinen Vorschlag schon ausprobiert.
Er scheint mir gar nicht in den Bereich zu kommen indem die Daten verarbeitet werden, sprich hochgeladen und in die DB eingetragen..
Aber ergibt für mich keinen Sinn.
wie könnte ich den die if-Abfragen umändern?
 
Danke für die Mühe Gumbo, aber auch hier werden die Daten nicht hochgeladen.
Der Name wird aber schonmal in die DB geschrieben, allerdings auch ohne die id der dazugehörigen Galerie.
Ich hab auch jetzt echt keinen Bock mehr darauf, ich schau mir das morgen nochmal an, wenn ich wieder nen kühleren Kopf habe...
 
Zurück