Hallo,

Ik heb onderstaande code voor de upload van mijn bestanden. De bestanden worden in de betreffende map opgeslagen, het probleem is alleen dat alleen de eerste bestandsnaam wordt opgeslagen in mijn SQL. Helaas kom ik er zelf niet uit waar dit aan kan liggen.


<?php
$upload_dir= '../upload';
$messages = array();	

if(isset($_FILES['file']['tmp_name'])) {
    for($i=0; $i < count($_FILES['file']['tmp_name']);$i++) {
        if(!is_uploaded_file($_FILES['file']['tmp_name'][$i])) {
            $messages[] = 'Afbeelding mag niet leeg zijn!';
        } else {
			$allowedExts = array("gif", "jpeg", "jpg", "png");
			$temp = explode(".", $_FILES["file"]["name"][$i]);
			$extension = end($temp);
			if ((($_FILES["file"]["type"][$i] == "image/gif")
			|| ($_FILES["file"]["type"][$i] == "image/jpeg")
			|| ($_FILES["file"]["type"][$i] == "image/jpg")
			|| ($_FILES["file"]["type"][$i] == "image/pjpeg")
			|| ($_FILES["file"]["type"][$i] == "image/x-png")
			|| ($_FILES["file"]["type"][$i] == "image/png"))
			&& in_array($extension, $allowedExts)) {
				if(file_exists($upload_dir.'/'.$_FILES['file']['name'][$i])) {
					$messages[] = $_FILES['file']['name'][$i]. 'Afbeelding bestaat al';
				} else {
					move_uploaded_file($_FILES["file"]["tmp_name"][$i],
					  "../upload/" . $_FILES["file"]["name"][$i]);
					  echo "Stored in: " . "upload/" . $_FILES["file"]["name"][$i];
						
						
					$sql = mysql_query ("
					INSERT INTO album (a_image, a_id)
					VALUE('". $_FILES['file']['name'][$i]."', '31')
					"); 
							
					if($sql) {
						$succes = 'Project is toegevoegd! Na 3 seconden wordt je teruggestuurd naar het overzicht.'; 
					} else {
						$error = 'Project is niet toegevoegd!';
					}
				}
			} else {
				$messages[] = $_FILES['userfile']['name'][$i]. 'formaat niet toegestaan';
			}
        }
    }
}
?>
En je query is?

Oei, ik las ff niet goed. Zie het al.
Aangezien je geen foutafhandeling rond je query gebouwd hebt is het natuurlijk zoeken naar een speld in een hooiberg. Doe dat eerst eens en kijk of er een melding komt, of dat de query gewoon wel wordt uitgevoerd, maar er niets wordt ingevoerd (primary key of unieke index op a_id bijvoorbeeld?).
Erwin, bedankt voor je reactie.

Ik krijg de volgende melding als ik 2 bestanden upload:


Stored in: upload/549995_571431302875504_761029119_n.jpg

Er ging iets fout met de query: (INSERT INTO album (a_image) VALUE('549995_571431302875504_761029119_n.jpg'))

Stored in: upload/bg_2.jpg

Er ging iets fout met de query: (INSERT INTO album (a_image) VALUE('bg_2.jpg'))


Heb de volgende query gebruikt:

$sSQL = "INSERT INTO album (a_image)
							VALUE('". $_FILES['file']['name'][$i]."')";
					$rResult = mysql_query($sSQL);

					if($rResult === false)
					{
					 echo("Er ging iets fout met de query:  (".$sSQL.")");
					}
					else
					{
					  while($aRow = mysql_fetch_assoc($rResult))
					  {
						echo $aRow['kolom'];
					  }
					}
Ben je al een hele stap verder. Nu alleen nog de mysql error bekijken ([php]mysql_error[/php]) en je weet wat je moet aanpassen.
Wederom bedankt, begrijp alleen niet helemaal waar ik mysql_error moet toevoegen.
Op de plek waar je je foutmelding toont, over dat je query de fout in liep.
Dus het wordt dan onderstaande als ik het goed begrijp?


if($rResult === false)
					{
					 echo("Er ging iets fout met de query:  (".$sSQL.")");
					 echo mysql_error($sSQL);
					}
Deze vraag was overbodig geweest als je op de link van Erwin geklikt had ;-)
mysql_error() zonder argumenten volstaat.
Bedankt Ger, heb het inmiddels voor elkaar gekregen :)
Het is wel zo leuk om die oplossing ook hier even te vermelden.

Reageren