2017-06-02 16 views
-1

私はクライアントが特定の投稿を好きにすることができないと思うPHPのプロジェクトに取り組んでいます。 mysqlデータベースのlike clomnは、1(つまり+1または-1)で増減する必要があります。 以下は私のSQL構文です。どこが間違っているのか分かりません。sqlステートメントが私のために働いていない

$time = date("Y-m-d H:i:s"); 
$sql_likes2 = "UPDATE `tble_likes` SET likes = `tble_likes`.`likes`-1 WHERE `tble_likes`.`postaID` = ? AND `tble_likes`.`useremail` = ?"; 
$SQL_statement_likes= $this->conn->prepare($sql_likes2); 
$SQL_statement_likes->bindParam(1,$this->posta2); 
$SQL_statement_likes->bindParam(2,$this->user_mail); 
$SQL_statement_likes->execute(); 
if($SQL_statement_likes==true){ 
    echo $this->user_mail; 
    $sql_countL = "SELECT COUNT(likes) AS SUM FROM tble_likes WHERE postaID=? GROUP BY postaID LIMIT 1"; 
    $sql_statement_countL = $this->conn->prepare($sql_countL); 
    $sql_statement_countL->bindParam(1,$this->posta); 
    $sql_statement_countL->execute(); 
    if($sql_statement_countL==true){ 
     $row=$sql_statement_countL->fetch(); 
     $unlike = $row[0]; 
     echo $unlike; 
    } 
} 
+0

列のカウントが追加または列の値から差し引いた後に変更するつもりはありません。代わりに...からのシンプルなselect likesを使用してください。 – Shadow

+2

'COUNT'ではなく' SUM'を試してください。 countは個々の行、sumはそれらの行の累積値です。 – aynber

+0

最初のように保管する方法は私には明らかではありません。 – Shadow

答えて

0

SUMは予約語なので、

$sql_countL = "SELECT COUNT(likes) AS sumRows FROM tble_likes WHERE postaID=? GROUP BY postaID LIMIT 1"; 
関連する問題