unable to insert dynamic row data to database

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • renuka12
    New Member
    • Apr 2015
    • 1

    unable to insert dynamic row data to database

    I am dynamically adding a row through select box. I am facing three problem with below code
    1) I am able to create the new row but its in reverse order like (3,2,1) instead of (1,2,3).
    2) Secondly, when i select another number to create that number of rows then then previous data don't delete instead new data append on it.
    3) Thirdly dynamic rows data is not inserting into the database.

    Please help me with this i'm very new to php and javascript. Thanks in advance


    HTML CODE
    --------

    Code:
      <form name="scrnselection" method="post" onsubmit="return validate();"> <center> <?php if(!empty($error)) echo '<div class="error"><b>'.$error.'</b></div>'; ?> <?php if(!empty($accept)) echo '<div class="accept"><b>'.$accept.'</b></div>'; ?> <input name="h" type="hidden" id="h" value="0" /> <label id="lab" style="visibility:hidden;"></label> <br/> <table id="mytable"> <tr> <td> <label for="multiname">Enter the name of screen:</label> </td> <td> <input type="text" name="multiname" id="name" value="" /> </td> </tr> <tr> <td> <label for="scrn">Select no. of screen:</label> </td> <td> <select name="scr" id="scr" onchange="addrow($(this).val());"> <option value="select" selected>select</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> <tr> <td> <label for="header">Select Header:</label> </td> <td> <?php
                            $dbLink = new mysqli('localhost', 'root', 'root', 'display'); 
                        // Check connection
                                if(mysqli_connect_errno()) {
                                          die("MySQL connection failed: ". mysqli_connect_error());
                                                }
                                else{              
                                      $sql = "select header_name from screen_header";
                                        $result = mysqli_query($dbLink, $sql) or die (mysqli_error($dbLink));
                                        $select .= "<option  value='select'>Select</option>\n";
                                        while($row = $result->fetch_assoc()) {
                                        $select .= "<option>".$row['header_name']."</option>\n";
                                                                   }
                                    echo "<select name='header' id='header_file'>".$select."</select>";  
                          mysqli_close($dbLink);
                            }
                                ?> </td> </tr> <tr> <td> <label for="pagelayout">Select Pagelayout:</label> </td> <td> <?php
    
                              $dbLink = new mysqli('localhost', 'root', 'root', 'display');
                                    
                                     if(mysqli_connect_errno()) {
                                          die("MySQL connection failed: ". mysqli_connect_error());
                                                }
                                      else {
                                        $sql="SELECT name FROM layout";
                                        $result = mysqli_query($dbLink, $sql) or die (mysqli_error($dbLink));
                                        $select1 .= "<option  value='select'>Select</option>\n";
                                        while($row = $result->fetch_assoc()) {
                                        $select1 .= "<option>".$row['name']."</option>\n";
                                           }
                                        echo "<select name='layout[]' id='layout_file'>".$select1."</select>";  
                               mysqli_close($dbLink);
                              }   
                            ?> </td> </tr> <tr> <td> <label for="data">Select Data:</label> </td> <td> <?php
                                $dbLink = new mysqli('localhost', 'root', 'root', 'display');
                                    
                                     if(mysqli_connect_errno()) {
                                          die("MySQL connection failed: ". mysqli_connect_error());
                                                }
                                else{              
                                      $sql = "select file_name from data_file";
                                        $result = mysqli_query($dbLink, $sql) or die (mysqli_error($dbLink));
                                        $select2 .= "<option  value='select'>Select</option>\n";
                                        while($row = $result->fetch_assoc()) {
                                        $select2 .= "<option>".$row['file_name']."</option>\n";
                                                                   }
                                    echo "<select name='data{}' id='data_file'>".$select2."</select>";  
                           mysqli_close($dbLink);
                            }
                                ?> </td> </tr> <tr> <td> <label for="footer">Select Footer:</label> </td> <td><?php
                               $dbLink = new mysqli('localhost', 'root', 'root', 'display');
                                    
                                     if(mysqli_connect_errno()) {
                                          die("MySQL connection failed: ". mysqli_connect_error());
                                                }
                                else{              
                                      $sql = "select footer_name from screen_footer";
                                        $result = mysqli_query($dbLink, $sql) or die (mysqli_error($dbLink));
                                        $select3 .= "<option  value='select'>Select</option>\n";
                                        while($row = $result->fetch_assoc()) {
                                        $select3 .= "<option>".$row['footer_name']."</option>\n";
                                                                   }
                                    echo "<select name='footer' id='footer_file'>".$select3."</select>";  
                          mysqli_close($dbLink);
                            }
                           ?> </td> </tr> </table> <input type="submit" value="Save" name="submit" id="submit" /> </center> </form>

    JAVASCRIPT CODE
    ---------------
    Code:
    <script>
     function addrow(x){
               alert(x);
    
            for (var l=1; l <= x-1; l++){
                                       $(function() {
       var k=4;
                                                  //  var addDiv1 = $('#table_row');
                                                //  var k = $('#table_row p').size() + 1;
    var index = 4;
    newRow = "<tr>" +
                    "<td><label>Select Pagelayout"+l+": </label></td><td><?php $dbLink = new mysqli('localhost', 'root', 'root', 'display'); 
                        // Check connection
                                if(mysqli_connect_errno()) {
                                          die("MySQL connection failed: ". mysqli_connect_error());
                                                }
                                else{              
                                      $sql = "SELECT name FROM layout";
                                        $result = mysqli_query($dbLink, $sql) or die (mysqli_error($dbLink));
                                         $select4 .= "<option  value='select'>". select ."</option>";
                                         while($row = $result->fetch_assoc()) {
                                          $select4 .= "<option>".$row['name']."</option>";
                                                  }
                                        echo "<select name='layout.'l'.' id='layout.'l'.'>".$select4."</select>";
                          mysqli_close($dbLink);
                            }?></td></tr>"+
                    "<tr><td><label>Select Data"+l+": </label></td><td><?php $dbLink = new mysqli('localhost', 'root', 'root', 'display'); 
                        // Check connection
                                if(mysqli_connect_errno()) {
                                          die("MySQL connection failed: ". mysqli_connect_error());
                                                }
                                else{              
                                      $sql = "select file_name from data_file";
                                        $result = mysqli_query($dbLink, $sql) or die (mysqli_error($dbLink));
                                        $select5 .= "<option  value='select'>Select</option>";
                                        while($row = $result->fetch_assoc()) {
                                        $select5 .= "<option>".$row['file_name']."</option>";
                                                                   }
                                    echo "<select name='data.'l'.' id='data.'l'.'>".$select5."</select>";  
                          mysqli_close($dbLink);
                            }?></td></tr>";
    
    
    $('#myTable > tbody > tr').eq(k).after(newRow);
         //  $('#myTable > tbody > tr').eq(k-1).after(newRow);
    
        return false;
               
                                                                    });
                
            }  scrnselection.h.value=l;  
               alert(l);
                           
              
                 }
                
    </script>
    PHP CODE
    --------
    Code:
    if(isset($_POST['submit']))
    {
        $screen_name = $_REQUEST['multiname'];
        $screen_scr = $_POST['scr'];
        $screen_header = $_POST['header'];
        //$screen_layout = $_POST['layout'];
       // $screen_data =  $_POST['data'];
        $screen_footer = $_POST['footer'];
        $num = $_POST['h'];
    
       echo $num;
    
        
       $dbLink = new mysqli('localhost', 'root', 'root', 'display');
                                    
       if(mysqli_connect_errno()) {
         die("MySQL connection failed: ". mysqli_connect_error());
                                                }
    $sql="SELECT screen_name from `multi_screen` WHERE name='$screen_name'";
         $check=mysqli_query($dbLink, $sql);
    
    
     if(mysqli_num_rows($check)>=1)
      
    $error= "Name already exist!";
    
    
    else
      { 
     for($i=0;$i<=$num;$i++){
    if(isset($_REQUEST['layout$i']))
    {
       $screen_layout = $_POST['layout$i'];
    
       echo $screen_layout;
    }
    if(isset($_REQUEST['data$i']))
    { 
            $screen_data = $_REQUEST['data$i'];
    } 
     $sql1="INSERT INTO `multi_screen` (screen_name, screen_scr, screen_header, screen_layout, screen_footer) VALUES ('$screen_name','$screen_scr','$screen_header','$screen_layout','$screen_footer')";
    
       $result1 = mysqli_query($dbLink, $sql1) or die (mysqli_error($dbLink));
    
         if (!$result1)
    		{
    		 die('Error: ' . mysqli_error());
      echo "<script type=\"text/javascript\" >  alert(\"Problem ocuured with server. Please try again later.\");   </script>";
    				}
    
       else $accept= "Data Inserted !Continue with the process.";
    }
    
     mysqli_close($dbLink);
      //   header("Location: layout.php");
      }
    }
    Last edited by RonB; Apr 13 '15, 03:59 PM. Reason: Added code tags
  • Claus Mygind
    Contributor
    • Mar 2008
    • 571

    #2
    Can't give you an answer to question #1, code looks too confusing. Perhaps you need to add an "order by" clause to your sql query.

    Answer to qeustion #2
    You appear to only be inserting data into your table. I don't see an update or delete of existing rows in the table. That could explain why you keep building the number of rows you output

    Answer to question #3

    Your SQL is incorrectly written.

    You have
    Code:
    $sql1="INSERT INTO `multi_screen` (screen_name, screen_scr, screen_header, screen_layout, screen_footer) VALUES ('$screen_name','$screen_scr','$screen_header','$screen_layout','$screen_footer')";
    You need to add ." ". to your string like this
    Code:
    $sql1="INSERT INTO `multi_screen` (screen_name, screen_scr, screen_header, screen_layout, screen_footer) VALUES ('[B]".[/B]$screen_name[B]."','".[/B]$screen_scr[B]."','".[/B]$screen_header[B]."','".[/B]$screen_layout[B]."','".[/B]$screen_footer[B]."[/B]')";

    Comment

    • RonB
      Recognized Expert Contributor
      • Jun 2009
      • 589

      #3
      Contrary to Claus's suggestion, you don't need to use concatenation in the sql statement. PHP is perfectly capable of interpolating vars within a double quoted string. And, in most cases, as it would be here, it only servers to make the code more messy/unreadable.

      You need to fix your code formatting/indentation. Due to its very messy/inconsistent indentation, it's very difficult to follow its logic and a line length of just under 900 characters is absurd.

      Comment

      Working...