www.webdeveloper.com
Results 1 to 7 of 7

Thread: insert multiple records in mysql using for loop

  1. #1
    Join Date
    Aug 2013
    Posts
    40

    insert multiple records in mysql using for loop

    Please help to understand how could i insert multiple records in mysql using for loop, let me explain the scenario

    I want insert multiple input type text fields, date ( 45 rows which i want to insert once the user click on the submit button)

    Variable name which i used

    $date= current date (value is assigned by the date function in php is same for all the row)
    $time1 => Textfield
    $initials1 => Textfield
    des1 => Textfield

    $date= current date (value is assigned by the date function in php is same for all the row)
    $time2 => Textfield
    $initials2 => Textfield
    des2 => Textfield

    .
    .
    .
    .
    .
    .
    .
    $date= current date (value is assigned by the date function in php is same for all the row)
    $time45 => Textfield
    $initials45 => Textfield
    des45 => Textfield


    I want to execute loop 45 times but i don't know how the number will increment for time,initials,des will change inside the loop.

    All the reply is appreciate.
    Thanks Alot in advance.

  2. #2
    Join Date
    Jul 2013
    Location
    Voorheesville NY USA
    Posts
    699
    Exactly what is "Textfield"? That will tell me how to answer you. Is it a POST field? Give me the code.

  3. #3
    Join Date
    Aug 2013
    Posts
    40
    yes correct its a POST field
    example

    $time1=$_POST['time1'];
    $initials= $_POST['initials1'];
    $des1=$_POST['des1'];

  4. #4
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,304
    You could probably make things easier by using array notation in your form:
    HTML Code:
    <input type='text' name='time[1]' />
    ...next one would then be...
    <input type='text' name='time[2]' />
    Then use the mysqli or PDO extension, making use of prepared statements and bound parameters.
    PHP Code:
    $pdo = new PDO('mysql:host=localhost;dbname=your_db_name'$dbUser$dbPass);
    $sql = <<<EOD
    INSERT INTO some_table (
        time_field,
        initials_field,
        des_field
    ) VALUES (
        :time,
        :initials,
        :des
    )
    EOD;
    $stmt $pdo->prepare($sql);
    foreach(
    $_POST['time'] as $key => $value) {
        
    $stmt->bindParam(':time'$value);
        
    $stmt->bindParam(':initials'$_POST['initials'][$key]);
        
    $stmt->bindParam(':des'$_POST['des'][$key]);
        
    $stmt->execute();

    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  5. #5
    Join Date
    Jul 2013
    Location
    Voorheesville NY USA
    Posts
    699
    Exactly what I was hoping to see, but alas, didn't.

    Yes - by using array notation you get an easy to use solution for your multiple inserts.

  6. #6
    Join Date
    Aug 2013
    Posts
    40
    Actually I tried the code which is mentioned below, but there is some syntax error in my insert query please help me to find it , also suggest me the code which is mentioned below will work or not.

    Code:
    $total_record = 45;
    			
    			//if the same day checklist is not exist, execute the insert commands.
    			else
    			{
    				$sql=mysql_query("INSERT INTO checklist (DATE,TIME,INITIALS,JOBNAME) VALUES
    				
    				for ($i = 1; $i <= $total_record; $i++) 
    				{
    					('$date','$time[i]','$initials[i]','$des[i]')") or die ("Database Connection Error" .mysql_error());
    				}

  7. #7
    Join Date
    Jul 2013
    Location
    Voorheesville NY USA
    Posts
    699
    It appears that you are trying to mix php code with your sql code. No can do.

    Looking back I see something that is wrong.

    Your html should look like:

    <input type='text' name='timefld[]'
    NOT
    <input type='text' name='timefld[1]'

    Each of your repeated lines for each named input should be:
    first item:
    name='timefld[]'
    name='timefld[]'
    ...
    ..
    and
    name='initials[]'
    name='initials[]'

    in each <input> tag

    From this input you can then loop thru the array and build a query statement and execute it over and over as NogDog tried to show you. You didn't do what he said.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles