2017-07-03 5 views
0

Ich habe 1 Tabelle und möchte 2 Werte in MySql einfügen. Es gibt jedoch nur einen Wert in meiner Datenbank und der andere bleibt leer.Daten in MySql mit 2 Eingabewerten einfügen

Das Design meiner mySql Tabelle: enter image description here

Meine Html-Tabelle Code ist unten:

<table> 

    <tr> 
     <th></th> 
     <th>Main Applicant</th> 
     <th>Joint Applicant1</th> 

    </tr> 
    <tr> 
     <td>Name</td> 
     <td><input type="text" id="nameMain" name="nameMain" class="form-control" autocomplete="off" required></td> 
     <td><input type="text" id="nameJoint1" name="nameJoint1" class="form-control" autocomplete="off" required></td> 


    </tr> 

    <tr> 
     <td>Nationality(Country)</td> 
     <td><input type="text" id="nationMain" name="nationMain" class="form-control" autocomplete="off" required></td> 
     <td><input type="text" id="nationJoint1" name="nationJoint1" class="form-control" autocomplete="off" required></td> 

</tr> 
<tr> 
    <td>Age</td> 
    <td><input type="number" id="ageMain" name="ageMain" class="form-control" autocomplete="off" required></td> 
    <td><input type="number" id="ageJoint1" name="ageJoint1" class="form-control" autocomplete="off" required></td> 


</tr> 

Mein post.php Code ist unten:

 <?php 


    require_once 'db/dbfunction.php'; 
    require_once 'db/dbCreditAssessment.php'; 

    session_start(); 
    $con = open_connection(); 



    $name = $_POST['nameMain']; 
    $nationality = $_POST['nationMain']; 
    $age = $_POST['ageMain']; 


    $nameJoint1 = $_POST['nameJoint1']; 
    $nationJoint1 = $_POST['nationJoint1']; 
    $ageJoint1 = $_POST['ageJoint1']; 

    addApplicantPersonalDetails($con,$name,$nationality,$age); 

    addApplicantPersonalDetails2($con,$name,$nationality,$age); 

    close_connection($con); 


    ?> 

Mein addCreditAssessment.php-Code ist unter:

<?php 

function addApplicantPersonalDetails($con,$name,$nationality,$age){ 

    $query = "insert into zzz(name,nationality,age) 
      values('$name','$nationality','$age')";    
       //echo "{$sqlString}"; 



       $insertResult = mysqli_query($con, $query); 


       if($insertResult){ 
        echo " Applicant Detail Added !<br />"; 
        echo "<a href='index.php'>Back to Home</a>"; 
       } 
       else { 
        echo " Error !"; 
        echo "{$query}"; 
        //header('Location: post.php'); 
       } 


} 

function addApplicantPersonalDetails2($con,$name,$nationality,$age){ 



    $query2 = "insert into zzz(name,nationality,age) 
      values('$nameJoint1','$nationJoint1','$ageJoint1')"; 


       $insertResult2 = mysqli_query($con, $query2); 



       if($insertResult2){ 
        echo " Applicant Detail Added !<br />"; 
        echo "<a href='index.php'>Back to Home</a>"; 
       } 
       else { 
        echo " Error !"; 
        echo "{$query2}"; 
        //header('Location: post.php'); 
       } 
} 


?> 
+1

Sie erhalten '$ name, $ Nationalität, $ age' und legen Sie' '$ nameJoint1', '$ nationJoint1', '$ ageJoint1'' in zweiter Funktion 'addApplicantPersonalDetails2 () ' –

+0

Checkout die Antwort von mir gegeben: [Meine Antwort] (https://stackoverflow.com/questions/44879391/insert-data-to-mysql-with-2-input-value/44879472#44879472) –

Antwort

1

Sie verwenden Variablen ändern, die ich die Funktion nicht definieren, werden deshalb leer

wie dieses

Do
function addApplicantPersonalDetails2($con,$nameJoint1,$nationJoint1,$ageJoint1){ 
    $query2 = "insert into zzz(name,nationality,age) 
      values('$nameJoint1','$nationJoint1','$ageJoint1')"; 


       $insertResult2 = mysqli_query($con, $query2); 



       if($insertResult2){ 
        echo " Applicant Detail Added !<br />"; 
        echo "<a href='index.php'>Back to Home</a>"; 
       } 
       else { 
        echo " Error !"; 
        echo "{$query2}"; 
        //header('Location: post.php'); 
       } 
} 

Es wird für Sie arbeiten.

0

Ihre zweite Funktion ist falsch:

Ihre Funktion ist:

addApplicantPersonalDetails2($con,$name,$nationality,$age) 

Ihre SQL wie folgt schreiben:

$query2 = "insert into zzz(name,nationality,age) 
      values('$name','$nationality','$age')"; 

Sie die alten Variablen aus Ihrem $ _POST gesetzt Anfrage, nicht von Ihrer Funktion

0

Ich denke, hier sind zwei Fehler. Die erste liegt in diesem Aufruf, in dem Sie die gleichen Parameter wie die oben verwenden:

addApplicantPersonalDetails2($con,$name,$nationality,$age); 

Ich denke, was Sie meinen, ist:

addApplicantPersonalDetails2($con,$nameJoint1,$nationJoint1,$ageJoint1); 

Zweitens, wie @FrayneKonok und @ Richard hingewiesen haben Aus, Sie verwenden die falschen formalen Parameter in der Abfrage im Körper der Funktion.

0

Sie erhalten $name,$nationality,$age und geben bei der zweiten Funktion addApplicantPersonalDetails2() ein.

Sie müssen die gleiche Abfrage für beide Funktionen verwenden. Ihre zweite Abfrage möchte:

$query2 = "insert into zzz(name,nationality,age) values('$name','$nationality','$age')"; 

Oder Sie können Ihre Funktionsparameter mit '$nameJoint1','$nationJoint1','$ageJoint1'

0

Statt nameMain und nameJoint1 zu verwenden, Sie name[] für beide Feld

Auf post.php, der Name Benutzereingabe zu $_POST['name'] Array gehören können.

So können Sie For-Schleife verwenden, um alle diese Daten zu übermitteln.

So sieht Ihre HTML-Datei wird dies wie:

<table> 

    <tr> 
     <th></th> 
     <th>Main Applicant</th> 
     <th>Joint Applicant1</th> 

    </tr> 
    <tr> 
     <td>Name</td> 
     <td><input type="text" id="nameMain" name="name[]" class="form-control" autocomplete="off" required></td> 
     <td><input type="text" id="nameJoint1" name="name[]" class="form-control" autocomplete="off" required></td> 


    </tr> 

    <tr> 
     <td>Nationality(Country)</td> 
     <td><input type="text" id="nationMain" name="nation[]" class="form-control" autocomplete="off" required></td> 
     <td><input type="text" id="nationJoint1" name="nation[]" class="form-control" autocomplete="off" required></td> 

</tr> 
<tr> 
    <td>Age</td> 
    <td><input type="number" id="ageMain" name="age[]" class="form-control" autocomplete="off" required></td> 
    <td><input type="number" id="ageJoint1" name="age[]" class="form-control" autocomplete="off" required></td> 


</tr> 

dann Ihre Funktion wie folgt aussieht:

function addApplicantPersonalDetails($con,$name,$nationality,$age){ 
if(count($name) == count($nationality) == count($age) = $count){ 
    for($i = 0; $i < $count; $i++){ 
     $query = "insert into zzz(name,nationality,age) 
      values('$name[$i]','$nationality[$i]','$age[$i]')";    
       //echo "{$sqlString}"; 

       $insertResult = mysqli_query($con, $query); 
    } 

       if($insertResult){ 
        echo " Applicant Detail Added !<br />"; 
        echo "<a href='index.php'>Back to Home</a>"; 
       } 
       else { 
        echo " Error !"; 
        echo "{$query}"; 
        //header('Location: post.php'); 
       } 


} 
+0

ist da fehlende $ count? – xhinvis

+0

wie ich versuchte, funktioniert die if-Funktion nicht – xhinvis

0

post.php

Ändern der Variablenname

addApplicantPersonalDetails2($con,$nameJoint1,$nationJoint1,$ageJoint1); 

addCreditAssessment.php

function addApplicantPersonalDetails2($con,$nameJoint1,$nationJoint1,$ageJoint1)