Сложение и вычитание из двух таблиц на mysql / Stack Overflow

Я пытаюсь сделать систему баллов, где вы можете выбрать от 1 до 5

  <form class='form-horizontal' action='../api/points.php' method='post'><fieldset>
<input type='radio' value='1' name='points' /> 1 </input>
<input type='radio' value='2' name='points'  /> 2 </input>
<input type='radio' value='3' name='points'  /> 3 </input>
<input type='radio' value='4' name='points'  /> 4 </input>
<input type='radio' value='5' name='points'  /> 5 </input>
<br />
<input name='Submit' type='submit' value='give points' />
<input name='userid' type='hidden' value='<? echo $row['user_id'] ?>' />
<input name='postid' type='hidden' value='<? echo $row['id'] ?>;' />
<input name='currentpoints' type='hidden' value='<? echo $row['postpoints']; ?>' />
<input name='user2id' type='hidden' value='<? echo $loggedInUser->user_id; ?>' />
</fieldset>
</form>

Есть два идентификатора: идентификатор пользователя, который дает очки, и идентификатор пользователя, который их получит.

Я должен сохранить их: (1) в таблице сообщений, в которой записывается общее количество баллов, которое было дано. (2) баллы должны быть вычтены из пользователя, который дает, и добавлен к пользователю, который их опубликовал.

Он дает постам баллы, но не добавляет и не вычитает из таблицы пользователей

$pointsvar = htmlentities($_POST['points']);
$userid = htmlentities($_POST['userid']);
$user2id = htmlentities($_POST['user2id']);
$postid = htmlentities($_POST['postid']);
$currentpoints = htmlentities($_POST['currentpoints']);
$suma1 = $currentpoints+$pointsvar;

$sql = "UPDATE ft_posts SET postpoints=(postpoints + $pointsvar) WHERE id='$postid'";

if ($conn->query($sql) === TRUE) {
echo "post points updated successfully";
echo "<br />";
echo "current post points+points variable: ";
echo ($suma1);
echo "<br />";
} else {
echo "Error updating record: " . $conn->error;
}

$sql2 = "UPDATE ft_users SET points='(points + $pointsvar)' WHERE id='$userid'";

if ($conn->query($sql2) === TRUE) {
echo "User given points updated successfully";
echo "<br />";
} else {
echo "Error updating record 2: " . $conn->error;
}

$sql3 = "UPDATE ft_users SET points='(points - $pointsvar)' WHERE id='$user2id'";

if ($conn->query($sql2) === TRUE) {
echo "User taken points updated successfully";
echo "<br />";
} else {
echo "Error updating record 3: " . $conn->error;
}$conn->close();

1

Решение

Удалить цитаты в points='(points + $pointsvar)'
и для SET points='(points - $pointsvar)'

Что касается этой строки:

if ($conn->query($sql2) === TRUE) {

Вы используете это в сочетании с $sql3 так что должно быть:

if ($conn->query($sql3) === TRUE) {
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]