0

I try many days combine multiple images and simultaneously various data in which all saved in a table in mysql.

For example we have a form in HTML, PHP:

<form method="post" enctype="multipart/form-data">
    <input type="text" name="firstname">
    <input type="text" name="lastname">
    <input type="text" name="phone">
    <input type="file" name="images[]" multiple="multiple" accept="image/*" />
    <input type="submit" name="submit" value="Upload!" />
</form>

How can become the association between PHP and SQL?

<?php
include "config.php";
$erors = array();  // set an empty array that will contains the errors

// Check for form submission
if (isset($_POST['firtname']) && isset($_POST['lastname'])) {
  // chech if all form fields are filled in correctly
  // (email address and the minimum number of characters in "name" and "pass")
  if (strlen($_POST['firstname'])<3) $erors[] = 'Name must contain minimum 3 characters';
  if (strlen($_POST['lastname'])<6) $erors[] = 'Password must contain minimum 6 characters';

  // if no errors ($error array empty)
  if(count($erors)<1) {

    // store the values in an Array, escaping special characters for use in the SQL statement
    $adds['firstname'] = $mysqli->real_escape_string($_POST['firtname']);
    $adds['lastname'] = $mysqli->real_escape_string($_POST['lastname']);
    $adds['phone'] = $mysqli->real_escape_string($_POST['phone']);

    /*

    CODE FOR UPLOAD MULTIPLE IMAGES

    */

    // sql query for INSERT INTO users
    $sql = "INSERT INTO `insert_data` (`firstname`, `lastname`, `phone`) VALUES ('". $adds['firtname']. "', '". $adds['lastname']. "', '". $adds['phone']. "')";

    // Performs the $sql query on the server to insert the values
    if ($mysqli->query($sql) === TRUE) {
      echo 'users entry saved successfully';
    }
    else {
      echo 'Error: '. $mysqli->error;
    }

    $mysqli->close();
  }
  else {
    // else, if errors, it adds them in string format and print it
    echo implode('<br>', $erors);
  }
}
?>

CREATE TABLE IF NOT EXISTS `insert_data` (
  `id` int(9) NOT NULL AUTO_INCREMENT,
  `firstname` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `lastname` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `phone` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  /*

  HERE SAVED MULTIPLE IMAGES??

  */
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

I should be grateful to your help!!

Thanks!

  • you should do it by giving comma sepereted name of images in one column and store it in table. – RJParikh May 30 '16 at 13:07
  • It isn't quite clear what you're asking - do you want to store the images themselves on the database, or will the images be stored in a directory, and only their paths saved to the DB? In most cases the second option is chosen, but some prefer to save the image as a base64 string directly in the DB. It all depends on what you plan to do with it later. In any case, you will probably need a one-to-many relationship to a table where the images/paths will be stored. – Shovalt May 30 '16 at 13:10
  • @RuchishParikh Properly it is possible you say that I can be done?, think something like a registration form Realestate! – VictoryCode May 30 '16 at 13:15
  • you can achieve it by `implode()` image array with comma seperated string and save it. – RJParikh May 30 '16 at 13:19
  • @RuchishParikh Is there any example? Thanks!! – VictoryCode May 30 '16 at 13:45

1 Answers1

0

this is may be use full for you: Multiple file upload in php

 $total = count($_FILES['upload']['name']);

    // Loop through each file
    for($i=0; $i<$total; $i++) {
      //Get the temp file path
      $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

      //Make sure we have a filepath
      if ($tmpFilePath != ""){
        //Setup our new file path
        $filename[] = $_FILES['upload']['name'][$i];
        $newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i];

        //Upload the file into the temp dir
        if(move_uploaded_file($tmpFilePath, $newFilePath)) {

          //Handle other code here or insert query here

        }
      }
    }
$images = implode(",",$filename);

insert "$images" variable in your table.

Community
  • 1
  • 1
Dhaval Koradiya
  • 424
  • 1
  • 6
  • 11