Я не уверен, в чем проблема с моим запросом, потому что я не могу обновить мою базу данных с последним значением, но могу (print_r) значение.
$serial[$i]= $_POST['serial'][$i];
print_r($serial);
$a = array(1,2,3,4,5,6);
print_r( $a);
$i=0;
$i=0;
foreach($serial as $s => $m){
$sqlw = "update speciform set nam5 = '$m[$i]' where nn = '$a[$i]' AND
nam11= CURDATE()";
mysql_query($sqlw) or die(mysql_error());
$i++;
}
Ниже приведена таблица для обновления в (HTML и PHP):
когда я повторяю $ serial, я получаю следующее:
когда я повторяю $ a, я получаю следующее: - echo $ a
и моя база данных такова: - Таблица базы данных
На самом деле нужно, чтобы кто-то помог мне, потому что я в настоящее время пуст с этой проблемой.
foreach($serial as $s => $m) {... }
будет циклически проходить через массив $serial
как вы ожидаете.
Если вы пишете:
foreach($serial as $s => $m)
{
echo $m;
}
Вы заметите, что на каждой итерации будет отображаться test1 test2 test3 и т.д.
Поскольку $m
является строкой, $m[0]
является первым символом. Следовательно, $m[$i]
отображает первый символ на первой итерации, второй символ на второй итерации и т.д....
$sqlw = "UPDATE speciform SET nam5 = '" . $m . "' WHERE nn = '" . $a[$i] . "' AND nam11= CURDATE()";
Этот запрос уязвим для инъекций SQL, но это еще одна тема. Я настоятельно рекомендую вам дезинформировать пользовательские входы. Никогда не доверяйте пользователю.
$sqlw = "update speciform set nam5 = '$m[$i]' where nn = '$a[$i]' AND
nam11= CURDATE()";
Изменить этот запрос
$sqlw = "update speciform set nam5 = '$m' where nn = '$a[$i]' AND
nam11= CURDATE()";
Поскольку, поскольку вы взяли foreach loop, массив из одного элемента является единственным в $ m.