Jump to content

Uploading Multiple Images with PHP and Mysql


MP145

Recommended Posts

Hi, i have read some tutorials and manage to put a script together to upload an image and data to my database. The image is uploaded to a folder and the file name is inserted into the database. The script below works like a charm. However, I would like to know, how can i upload multiple images at once ?

 

My form code

<form enctype="multipart/form-data" action="add.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name = "email"><br>
Phone: <input type="text" name = "phone"><br>
Photo: <input type="file" name="photo"><br>
<input type="submit" value="Add">
</form>

 

I understand that i can add another line of

Photo: <input type="file" name="photo1"><br>

to the form page above, but how can i add it to the code below;

 

 

My add.php code

<?php

$conn = mysql_connect('localhost','root','kannan') or trigger_error("SQL", E_USER_ERROR);
$db = mysql_select_db('sample',$conn) or trigger_error("SQL", E_USER_ERROR);

//This is the directory where images will be saved
$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);

//This gets all the other information from the form
$name=$_POST['name'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=($_FILES['photo']['name']);

$sql = "INSERT INTO employees (name, email, phone, photo) VALUES ('$name', '$email', '$phone', '$pic')";
$result = mysql_query($sql) or die ("Error in query: $query. ".mysql_error());


//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES['uploaded']['name']). " has been uploaded, and your information has been added to the directory";
}
else {

//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>

 

I am running Apache 2.2.8 , PHP 5.2.6 and MySQL 5.0.5 as localhost

 

Thank you very much.

Link to comment
Share on other sites

OK, that particular site was difficult to understand. I read a few others and got some samples and did this:

<?php

$conn = mysql_connect('localhost','xxx','yyyy') or trigger_error("SQL", E_USER_ERROR);
$db = mysql_select_db('sample',$conn) or trigger_error("SQL", E_USER_ERROR);

$imageName1 = $_FILES['image1']['name'];
$tmpImageName1 = $_FILES['image1']['tmp_name'];
$imageName2 = $_FILES['image2']['name'];
$tmpImageName2 = $_FILES['image2']['tmp_name'];
$imageName3 = $_FILES['image3']['name'];
$tmpImageName3 = $_FILES['image3']['tmp_name'];
$imageName4 = $_FILES['image4']['name'];
$tmpImageName4 = $_FILES['image4']['tmp_name'];
$imageName5 = $_FILES['image5']['name'];
$tmpImageName5 = $_FILES['image5']['tmp_name'];

$imagePath1 = 'images/' . $imageName1;
$imagePath2 = 'images/' . $imageName2;
$imagePath3 = 'images/' . $imageName3;
$imagePath4 = 'images/' . $imageName4;
$imagePath5 = 'images/' . $imageName5;

if( file_exists($tmpImageName1) ){
        move_uploaded_file($tmpImageName1, $imagePath1);
      }
       if( file_exists($tmpImageName2) ){
       move_uploaded_file($tmpImageName2, $imagePath2);
     }
     if( file_exists($tmpImageName3) ){
      move_uploaded_file($tmpImageName3, $imagePath3);
       }
       if( file_exists($tmpImageName4) ){
       move_uploaded_file($tmpImageName4, $imagePath4);
       }
       if( file_exists($tmpImageName5) ){
       move_uploaded_file($tmpImageName5, $imagePath5);
       }

$sql = "INSERT INTO images (image1, image2, image3, image4, image5) VALUES ('$imageName1', '$imageName2', '$imageName3', '$imageName4', '$imageName5')";
      mysql_query($sql) or die ("Error in query: $sql. ".mysql_error());

     echo "<h4>Images uploaded</h4><br />";
?>

 

But it's very long, can i know if i can shortened the codes? bcoz i need to add other details like name and contact too.

 

Thanks

Link to comment
Share on other sites

But it's very long, can i know if i can shortened
Yes, use an array like the page at the link showed. You can then use a foreach() loop it iterate over all the values. The User Contributed Notes section at that link shows several examples using an array and a foreach() loop. This example is the one I would start with - http://us.php.net/manual/en/features.file-upload.multiple.php#55614
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.