2017-02-23 4 views
0

** Mein Ziel: ** Fügen Sie die Menge in Db von jedem I_Code wie pro I_Name.Wie schreibe ich folgende Abfrage in MySQL mit PHP

Erwartete Ausgabe

 stock_color 
I_Code I_Qty I_Name 
M1  50  PYC 
M2  50  PYC 
M1  25  P285C 
M3  70  P285C 
M4  15  P285C 

PHP + MySQL

$ink={M1,M2,M1,M3,M4}; 
$Qty={50,50,25,70,15}; 
$ink_name={PYC,P285C}; 

for($j=0;$j<count($ink_name);$j++) 
{ 
     $sql[] = "insert into stock_color (I_Code,I_Qty,I_Name) values ('$ink[$j]','$Qty[$j]','$ink_name[$j]')" 
       foreach ($sql as $query) { 
         mysqli_query($query,$con); 
        }   
} 

Jetzt-Code funktioniert, aber mit falschen results.Please helfen mir out.Thanks im Voraus

+3

Sie müssen die pa tauschen Rameters in Ihrer 'mysqli_query'. Und die foreach-Schleife sollte nicht innerhalb der for-Schleife sein. – MrDarkLynx

+1

Im Allgemeinen führen Sie niemals eine Abfrage innerhalb einer Schleife aus. Wenn Sie jedoch parametrisierte Abfragen in pdo verwenden (was Sie tun sollten), ist das Gegenteil der Fall! – Strawberry

+0

Sollen 'mysqli_query ($ con, $ query);' – Akshay

Antwort

0

bitte versuchen Sie diesen Code

<?php 
$ink=array('M1','M2','M1','M3','M4'); 
$Qty=array(50,50,25,70,15); 
$ink_name=array('PYC','PYC','P285C','P285C','P285C'); 

for($j=0;$j<count($ink_name);$j++) 
    { 
    //$sql .= "insert into stock_color (I_Code,I_Qty,I_Name) values ('$ink[$j]','$Qty[$j]','$ink_name[$j]')"; 
    if($j==0){ 
     $sql .= " ('$ink[$j]','$Qty[$j]','$ink_name[$j]')"; 
    } else { 
     $sql .= ", ('$ink[$j]','$Qty[$j]','$ink_name[$j]')"; 
    } 

    } 
    echo $final_query = "insert into stock_color (I_Code,I_Qty,I_Name) values " .$sql; 
?> 
+0

Aber es könnte so viele Einträge geben, ich kann nicht manuell für jeden schreiben. – Babaji

+0

in diesem Fall müssen andere Lösung. ok versuchen, Lösung zu geben –

+0

können Sie diesen Code überprüfen –

Verwandte Themen