Я работаю над веб-сайтом и недавно добавил к нему некоторые изменения, несмотря на попытки прокомментировать указанные изменения, мой запрос UPDATE не работает - я пытался выяснить, почему за последние 3 часа безрезультатно.MySQL UPDATE query (PDO) необъяснимо не работает
if (isset($_POST['submit']))
{
if (count($rated)<$_SESSION['id'])
{
$difference = $_SESSION['id'] - count($rated);
$rated = implode(',',$rated);
while ($difference >= 0)
{
$rated .= "0,";
$difference--;
}
$rated = explode(',',$rated);
}
$rated[$_SESSION['id']] = $_POST['rating'];
$ratings = 0;
$ratingsadded = 0;
foreach ($rated as $user => $rating)
{
if ($rating != 0)
{
$query = $db->prepare("SELECT id, active FROM accounts WHERE id = :id");
$query->execute(array('id' => $user));
$useractive = $query->fetch();
if ($useractive['active'] == 1 || $user == 0 || $user == 50)
{
$ratings++;
$ratingsadded += $rating;
}
else
{
$rated[$user] = 0;
}
}
}
$ratingtotal = $ratingsadded/$ratings;
$query = $db->prepare("UPDATE accounts SET rating = :rating, rated = :rated WHERE id = :id");
$query->execute(array('rating' => $ratingtotal, 'rated' => implode(",",$rated), 'id' => $user['id']));
header('Location: ?user=' . $_GET['user']);
}
Примечание: запрос в самом конце является тем, о котором я говорю.
Второе примечание. Я знаю, что в моем коде есть немало неэффективности.
Полный код: http://pastebin.com/ybb71U6k
Кажется, что это сработает, мой ноутбук просто разбился, и теперь я перезагружаю его, чтобы проверить. – qwerty77asdf
Я удалил свой комментарий. Я вижу, что вы использовали '$ user' в качестве индексов массива в цикле foreach, поэтому это не проблема с оператором execute. –
@ Rajdeep обратитесь к моему ответу, большое вам спасибо. – qwerty77asdf