我在使用 $updatequery SQL 时遇到问题,这个 php 脚本在 ajax 调用中接受 3 个 post 变量,第一个是以前正确答案的数组,与这里无关。 $win 是 0 或 1,具体取决于上一个问题是否回答正确,$id 是单词的主 id(这是一个单词匹配游戏,如韩语抽认卡)。 $updatequery 旨在建立每个单词的统计数据,有多少人答对了,并通过记录该单词被点击的次数以及其中正确回答的次数来确定该单词的难度。如果我回答错误,数据库会准确反射(reflect):点击 1 次,没有胜利。但是我回答正确吗,它说0次点击,数据库中没有胜利...出了什么问题?!?!?!
<?php
$dbcon = mysql_connect("localhost", "tulesblo_tules", "Gromit554?") or die(mysql_error());
mysql_select_db("tulesblo_koreangame", $dbcon) or die(mysql_error());
mysql_query("SET NAMES utf8");
$correctarray = explode(",", $_POST["correct"]);
$win = (int)$_POST["win"];
$id = (int)$_POST["id"];
$correct = "";
$y = 1;
if ($id > 0) {
$updatequery = "UPDATE words SET clicks=clicks+1 AND wins=wins+ '$win' WHERE id= '$id'";
mysql_query($updatequery) or die(mysql_error());
}
foreach($correctarray as $x){
$correct .= " id != " . $x;
if ($y == count($correctarray)) {break;}
$correct .= " AND"; $y++;
}
//pick 4 random pairs
$filter = count($correctarray) > 1?"WHERE" . $correct:"";
$querystring = "SELECT * FROM words ".$filter." ORDER BY RAND() LIMIT 4";
$query = mysql_query($querystring);
//turn them into multiarray
$x = 0;
$multiarray = array();
while ($result = mysql_fetch_assoc($query)){
$multiarray[$x] = array(
"id" => $result['id'],
"korean" => $result['korean'],
"english" => $result['english']
);
$x++;
}
array_push ($multiarray,$win,$id);
//send as JSON to client
//array_push($multiarray, $querystring, count($correctarray));
echo json_encode($multiarray);
?>
最佳答案
更新多列时没有AND。只需用逗号分隔即可 -
$updatequery = "UPDATE words SET clicks=clicks+1, wins=wins+ '$win' WHERE id= '$id'"
关于php - MySQL语法?应该很简单!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394515/