2016-08-06 39 views
-2

verwenden ich diesen Fehler bin vor in meinem Code ich habe meine PHP-Code ist wie ..MySQL Fehler: Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in der Bedienungsanleitung für die richtige Syntax zu Ihrem MariaDB Server-Version entspricht in der Nähe von

<?php 
    $num = $_POST['h']; 

    if(isset($_POST['submit'])) { 
     for($i=0;$i<=$num;$i++) { 
      if(isset($_REQUEST["quantity$i"])){ 
       $quantity = $_REQUEST["quantity$i"]; 
      } 

      if(isset($_REQUEST["purchase$i"])){ //for error controling 
       $purchase = $_REQUEST["purchase$i"];}else{$purchase= 'purchase'; 
      } 

      if(isset($_REQUEST["sale$i"])) { //for error controling 
       $sale = $_REQUEST["sale$i"];}else{$sale = 00; 
      } 

      $sql="INSERT into myaccounts ('quantity','purchase','sale') values ('$quantity','$purchase','$sale')"; //for error controling    
      if(mysqli_query($dbh, $sql)) { 
       echo "Sucess"; 
      } else { 
       echo 'MySQL Error: ' . mysqli_error($dbh); 
      } 
     } 
    } 
?> 

Das Element h in html Code ist

ist
<table class="table table-bordered table-hover" id="tab_logic"> 
       <thead> 
        <tr > 
         <th class="text-center"> 
          # 
         </th> 
         <th class="text-center"> 
          Quantity 
         </th> 
         <th class="text-center"> 
          Purchase Price 
         </th> 
         <th class="text-center"> 
          Sale Price 
         </th> 
         <th class="text-center"> 
          Profit Or Loss 
         </th> 

        </tr> 
       </thead> 
       <tbody> 

        <tr id='addr0'></tr> 

<button type="submit" value="Register" name="submit" class="btn btn-default pull-">Submit</button> 
       </tbody> 

      </table> 
<input type="hidden" name="h" id="h" /> 
     </div> 

</form> 
</div> 
    <a id="add_row" class="btn btn-default pull-left">Add Row</a><a id='delete_row' class="pull-right btn btn-default">Delete Row</a> 


</div> 
<script> 
    $(document).ready(function(){ 
     var i=0; 
    $("#add_row").click(function(){ 
     $('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='quantity"+i+"' type='text' placeholder='Name' class='form-control input-md' /></td><td><input name='purchase"+i+"' type='text' placeholder='Purchase' class='form-control input-md'></td><td><input name='sale"+i+"' type='text' placeholder='Sale ' class='form-control input-md'></td>"); 

     $('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>'); 
     i++; 
    }); 
    $("#delete_row").click(function(){ 
     if(i>1){ 
     $("#addr"+(i-1)).html(''); 
     i--; 
     } 
    }); 

}); 
</script> 

ich habe aufbauen Registrierung und Login-Formular jetzt gleiche Insert Abfrage kann ich nicht auf Ergebnis hier erreichen.

Antwort

0

Sie Probleme mit Syntax, die versuchen

$ sql = "in MyAccounts INSERT verwenden

(Menge, Kauf, Verkauf) values ​​('$ Menge', '$ Kauf',‘ $ Verkauf ') ";

Statt

$ sql = "INSERT in MyAccounts

('Menge', 'Kauf', 'Verkauf') values ​​('$ Menge', '$ Kauf', '$ Verkauf')";

weil Sie Quantität Kauf und Verkauf als Argument nicht als eine harte Codefolge übergeben. hoffe es hilft.

1

Sie haben Syntaxfehler hier

$sql="INSERT into myaccounts 

('quantity','purchase','sale') values ('$quantity','$purchase','$sale')"; 

nicht Feldnamen in einfache Anführungszeichen gesetzt (')

Ersetzen Sie Ihre Abfrage mit diesem:

$sql="INSERT into myaccounts 

(quantity,purchase,sale) values ('$quantity','$purchase','$sale')"; 
0

Sie mischen HTML und PHP-Code innerhalb der Schleife versuchen th ist ein

<?php if(isset($_POST['submit'])) 
{ 

for($i=0;$i<=$num;$i++) 
{ 
if(isset($_REQUEST["quantity".$i])){$quantity = ["quantity".$i];} 
if(isset($_REQUEST["purchase".$i])){$purchase = $_REQUEST["purchase".$i];}else{$purchase= 'purchase';} //for error controling 
if(isset($_REQUEST["sale".$i])){$sale = $_REQUEST["sale".$i];}else{$sale = 00;} //for error controling 
$sql="INSERT into `myaccounts` (`quantity`,`purchase`,`sale`) values ('".$quantity."','".$purchase."','".$sale."')"; //for error controling 
if(mysqli_query($dbh, $sql)) 
{ 
    echo "Sucess"; 

} else { 
    echo 'MySQL Error: ' . mysqli_error($dbh); 
} 
}} 
?> 

oder wenn Sie die Werte in Array bekommen Sie dies tun, wie kann unter

for($i=0;$i<=$num;$i++) 
{ 
if(isset($_REQUEST["quantity"][$i])){$quantity = ["quantity"][$i];} 
if(isset($_REQUEST["purchase"][$i])){$purchase = $_REQUEST["purchase"][$i];}else{$purchase= 'purchase';} //for error controling 
if(isset($_REQUEST["sale"][$i])){$sale = $_REQUEST["sale"][$i];}else{$sale = 00;} //for error controling 
$sql="INSERT into `myaccounts` ('quantity','purchase','sale') values ('".$quantity."','".$purchase."','".$sale."')"; //for error controling 
if(mysqli_query($dbh, $sql)) 
{ 
    echo "Sucess"; 

} else { 
    echo 'MySQL Error: ' . mysqli_error($dbh); 
} 
} 
0

wie unten einzelne Zitate aus Feldnamen entfernen:

$sql="INSERT INTO myaccounts (quantity,purchase,sale) values ('$quantity','$purchase','$sale')"; 
+0

Danke, nur ein kleiner Fehler, aber es gibt ein anderes Problem, wie Sie in meinem 'Code' sehen können Ich füge Zeilen mit Java-Skript hinzu, jetzt werden nur die Einträge der ersten Zeile in der Datenbank gespeichert, nicht der anderen Zeilen Können Sie mir dabei helfen? –

+0

Ich sehe, dass es kein Formular in Bezug auf mehrere Zeilen gibt. Was ist der Wert von h, den du eingegeben hast? – srmilon

+0

Die 'Add Row' führt tatsächlich den Java-Skriptcode zum Hinzufügen von Zeilen aus. Jetzt habe ich meinen Code aktualisiert, den Sie überprüfen können. –

1

Einfache Anführungszeichen Bezeichnen Sie String-Literale, nicht Objekt- (zB Spalten-) Namen, wie Sie in der Spalte einfügen sollten:

Obligatorischer Kommentar:
Die Verwendung von String-Ersetzung im SQL-Code ist eine gefährliche Übung, die Ihren Code anfällig für SQL-Injection-Angriffe macht. Verwenden Sie stattdessen prepared statements.