Avatar billede arj79 Nybegynder
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.
Avatar billede michael_stim Ekspert
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.
Avatar billede michael_stim Ekspert
18. december 2005 - 17:52 #2
Hov glemte $i++; under den förste }
Avatar billede michael_stim Ekspert
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++;
}
Avatar billede michael_stim Ekspert
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.
Avatar billede arj79 Nybegynder
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
Avatar billede michael_stim Ekspert
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.
Avatar billede arj79 Nybegynder
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());
Avatar billede michael_stim Ekspert
20. december 2005 - 09:33 #8
Drop id hvis det er autoincrement. Både id og '' i VALUES.
Avatar billede arj79 Nybegynder
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
Avatar billede michael_stim Ekspert
20. december 2005 - 14:23 #10
Du får formodentlig ikke noget som helst ind i tabellen.
Avatar billede krydset Nybegynder
20. december 2005 - 14:24 #11
prøv engang ;)
Avatar billede arj79 Nybegynder
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());
Avatar billede arj79 Nybegynder
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());
Avatar billede michael_stim Ekspert
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.
Avatar billede arj79 Nybegynder
01. februar 2007 - 17:19 #15
Luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester