<?php
if($action=='sefaresh'){
$cookiname=$_COOKIE['mybasket'];
$stmt = $db->prepare("SELECT `idsabad`,`cookiname`,`idmahsool`,`tedad`,`pardakht` FROM `sabad` WHERE `cookiname`=?");
$stmt->bind_param("s", $cookiname);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($idsabad11, $cookiname1, $idmahsool1, $tedad1, $pardakht1);
while ($stmt->fetch()) {
$id = $idsabad11;
$stmt = $db->prepare("UPDATE `sabad` SET `tedad`=? WHERE `idsabad`=?");
$stmt->bind_param("ii", $_POST['tedad'.$idmahsool1], $id);
$stmt->execute();
}
}
?>
-4
A
ответ
1
Проблемы заключается в том, из-за объектом оператора $stmt
. Вы перезапись внешний объект $stmt
заявление внутри while()
цикла, чтобы сделать свою работу UPDATE
т.е. это заявление $db->prepare("UPDATE
сабад SET ...
внутри while()
возвратит разные заявление объект, который вы относящий $stmt
, тем самым переписав оригинальный/внешний $stmt
. И вот почему одна строка обновляется.
Таким образом изменить while()
петлю следующим образом,
while ($stmt->fetch()) {
$id = $idsabad11;
$stmt1 = $db->prepare("UPDATE `sabad` SET `tedad`=? WHERE `idsabad`=?");
$stmt1->bind_param("ii", $_POST['tedad'.$idmahsool1], $id);
$stmt1->execute();
$stmt1->close();
}
+0
Спасибо за ответ. отлично –
этот вопрос настолько неясно, что это не смешно. –
[Почему мне может помочь кто-то?] Не вопрос?] (Http://meta.stackoverflow.com/q/284236) – EJoshuaS