18. december 2005 - 17:35
Der er
14 kommentarer og 1 løsning
lille problem med et upload script
hej jeg har et lille problem. her er koden ------------------FORM/med upload----------------------------------- <html> <head> </head> <body> <form action="Add_To_Fangst_db.php" enctype="multipart/form-data" method="post"> <table border="0"> <tr> <td>Navn</td> <td><input type="text" name="name"></td> <td>Dato</td> <td><input type="text" name="date"></td> </tr> <tr> <td>pic 1 </td> <td><input type="file" name="pictures[]" /></td> <td>Art</td> <td><input type="text" name="art"></td> </tr> <tr> <td>pic 2</td> <td><input type="file" name="pictures[]" /></td> <td>Vægt</td> <td><input type="text" name="vaegt"></td> </tr> <tr> <td>pic 3</td> <td><input type="file" name="pictures[]" /></td> <td>Lægde</td> <td><input type="text" name="laenge"></td> </tr> <tr> <td colspan="4">Beskrivelse</td> </tr> <tr> <td Valign="top" colspan="4"><textarea name="kommentar" cols="75" rows="15"></textarea></td> </tr> <tr> <td colspan="4"><input type="submit" name="Submit"value="send"></td> </tr> </table> </form> </body> </html> ----------------------SQL/upload script------------------------ ?php include("connect.php"); foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name"); } } echo "pic". $_POST[pictures] . "<br>"; echo $_FILES["pictures"]["name"][$key] . "<br>"; $sql = "INSERT INTO `kirk_fangst` ( `id` , `navn` , `dato` , `pic1` , `pic2` , `pic3` , `art` , `vaegt` , `laengde` , `kommentar` ) VALUES ('', '$_POST[name]', '$_POST[date]' , '*1', ''*2', '*3', '$_POST[art]', '$_POST[vaegt]', '$_POST[laenge]', '$_POST[kommentar]')"; $result = mysql_query($sql) or die("Forespørgslen lykkedes ikke : " . mysql_error()); ?> Mit problem er at jeg kan ikke finde ud af hvad jeg skal skrive i steden for '*1','*2','*3' for at få navnene på de filer jeg har upoadet ind i databasen.
Annonceindlæg fra Admin By Request
18. december 2005 - 17:52
#1
$i=1; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name = $_FILES["pictures"]["name"][$key]; $pic.$i=$_FILES["pictures"]["name"]; move_uploaded_file($tmp_name, "upload/$name"); } } Og så skulle dine varaibler hedde $pic1 til $pic3.
18. december 2005 - 17:52
#2
Hov glemte $i++; under den förste }
18. december 2005 - 17:55
#3
Pröver lige igen ;) $i=1; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name = $_FILES["pictures"]["name"][$key]; $pic.$i=$_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name"); } $i++; }
18. december 2005 - 18:00
#4
Du kan også bare proppe i'et efter $name, men så skal du også huske at göre det nede i move_uploaded_file.
18. december 2005 - 20:31
#5
et lille problem til. Sikkert noget jeg burde vide;-) -------------------kode---------------------- $i=1; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name.$i = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name"); } echo $i."<br>"; $i++; } navnene på de filer jeg har uploaded ligger i $i. og jeg kan kun få dem frem ved at skrive >>echo $i."<br>"; hvordan for jeg lagt navnene ind i hver sin variable. fx pic1,pic2,pic3
18. december 2005 - 21:48
#6
$i=1; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name.$i = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name".$i.""); } echo $name.$i."<br>"; $i++; } Så skulle de gerne hedde $name1, $name2 og $name3.
20. december 2005 - 08:22
#7
upload virker perfekt. og den skriver filnavnene fint på skærmen. men der kommer ikke noget navn ind i databasen. ---------------------------------------------------------- $i=1; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name.$i = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name".$i.""); } echo $name.$i."<br>"; $i++; } $sql = "INSERT INTO `kirk_fangst` ( `id` , `navn` , `dato` , `pic1` , `pic2` , `pic3` , `art` , `vaegt` , `laengde` , `kommentar` ) VALUES ('', '$_POST[name]', '$_POST[date]' , '$name1', '$name2', '$name3', '$_POST[art]', '$_POST[vaegt]', '$_POST[laenge]', '$_POST[kommentar]')"; $result = mysql_query($sql) or die("Forespørgslen lykkedes ikke : " . mysql_error());
20. december 2005 - 09:33
#8
Drop id hvis det er autoincrement. Både id og '' i VALUES.
20. december 2005 - 14:19
#9
afhjælper det mit problem med at jeg ikke kan få navnene ind i db'en ved at skrive $name1, $name2, $name3
20. december 2005 - 14:23
#10
Du får formodentlig ikke noget som helst ind i tabellen.
20. december 2005 - 14:24
#11
prøv engang ;)
20. december 2005 - 14:41
#12
alle felterne bortset fra Pic1,pic2,pic3 bliver udfyldt. jeg har lavet en lille test jeg forsøger at skrive $name1, $name2, $name3 ud på skærmen men der er ikke noget data i? ----------------------kode----------------------------- $i=1; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name.$i = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name".$i.""); } echo $name.$i."<br>"; $i++; } echo "name1 =" . $name1."<br>"; //test 1 echo "name2 =" . $name2."<br>"; //test 2 echo "name3 =" . $name3."<br>"; //test 3 $sql = "INSERT INTO `kirk_fangst` (`navn` , `dato` , `pic1` , `pic2` , `pic3` , `art` , `vaegt` , `laengde` , `kommentar` ) VALUES ('$_POST[name]', '$_POST[date]' , '$_POST[name1]', '$name2', '$name3', '$_POST[art]', '$_POST[vaegt]', '$_POST[laenge]', '$_POST[kommentar]')"; $result = mysql_query($sql) or die("Forespørgslen lykkedes ikke : " . mysql_error());
20. december 2005 - 15:38
#13
det virker nu -------------------------------------------------- $i=1; $a=1; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name.$i = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name".$i.""); } $name[$a] = $i; $a++; $i++; } $sql = "INSERT INTO `kirk_fangst` (`navn` , `dato` , `pic1` , `pic2` , `pic3` , `art` , `vaegt` , `laengde` , `kommentar` ) VALUES ('$_POST[name]', '$_POST[date]' , '$name[1]', '$name[2]', '$name[3]', '$_POST[art]', '$_POST[vaegt]', '$_POST[laenge]', '$_POST[kommentar]')"; $result = mysql_query($sql) or die("Forespørgslen lykkedes ikke : " . mysql_error());
20. december 2005 - 15:49
#14
Du havde nok kunne nøjes med: $i=1; $name=array(); foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name[$i] = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "upload/$name[$i]"); } $i++; } $sql = "INSERT INTO `kirk_fangst` (`navn` , `dato` , `pic1` , `pic2` , `pic3` , `art` , `vaegt` , `laengde` , `kommentar` ) VALUES ('$_POST[name]', '$_POST[date]' , '$name[1]', '$name[2]', '$name[3]', '$_POST[art]', '$_POST[vaegt]', '$_POST[laenge]', '$_POST[kommentar]')"; $result = mysql_query($sql) or die("Forespørgslen lykkedes ikke : " . mysql_error()); Noget a lá det.
01. februar 2007 - 17:19
#15
Luk
Vi tilbyder markedets bedste kurser inden for webudvikling