2016-07-18 2 views
0

Я хочу сгенерировать «вставить в» SQL по циклу.Добавить INSERT в SQL с помощью цикла

$orderrecord='INSERT into counter SET'; 

for ($rank=0; $rank<10; $rank++) 
    { if (array_search($names[$rank],_$POST['v'])!==FALSE) 
    { $orderrecord.=" $names[$rank]=1, "; } ;} 

Проблема в том, что всегда будет одна дополнительная запятая, которая делает синтаксис SQL недействительным. «Вставить в счетчик SET A = 1, B = 1, C = 1» или «Вставить в счетчик SET, A = 1, B = 1, C = 1». Как справиться с этим?

+0

если $ rank = 0, то не ставьте запятую раньше. Это один из способов. –

+0

$ rank [0] не может быть добавлен. Он добавляется только в том случае, если он существует в массиве. Таким образом, первый добавленный может быть [1] или [2] и т. Д., Или вообще ничего. – user6571534

+0

'implode (',', array_filter ($ names, function ($ i) use (_ $ POST ['v']) {return array_search ($ i, _ $ POST ['v'])! == FALSE; })); ' – splash58

ответ

0
$orderrecord = 'INSERT into counter SET'; 

for ($rank=0; $rank<10; $rank++) { 
    if (array_search($names[$rank], $POST['v']) !== FALSE) { 
     $orderrecord.=" $names[$rank]=1, "; 
    } 
} 

$orderrecord = substr($orderrecord, 0, strlen($orderrecord) - 2); 
Смежные вопросы