2017-02-23 45 views
0

** My Aim: ** Введите Qty в Db каждого I_Code в соответствии с каждым I_Name.Как написать следующий запрос в mysql, используя PHP

Ожидаемый результат

 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); 
        }   
} 

Теперь код работает, но с неправильным results.Please помочь мне out.Thanks заранее

+3

Вам необходимо заменить pa rameters в вашей 'mysqli_query'. И петля foreach не должна находиться внутри цикла for. – MrDarkLynx

+1

В общем, никогда не выполняйте запрос внутри цикла. Однако при использовании параметризованных запросов в pdo (что и должно делать) противоположное верно! – Strawberry

+0

Должно быть 'mysqli_query ($ con, $ query);' – Akshay

ответ

0

пожалуйста попробуйте этот код

<?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

Но может быть так много записей, я не могу писать вручную для каждого. – Babaji

+0

в этом случае нужно другое решение. ok попробуйте дать решение –

+0

вы можете проверить этот код –