我是PHP的初学者,并且对我目前所做的事情非常困惑。 我有一个mysql数据库,我的所有记录都存储在其中,我现在要做的是检查指定的行是否存在某些值/字符,然后增加计数变量(如果存在)。
我的数据库看起来像这样:
id | searchname | searchpassword | question | ansTrue | ansFalse
---+------------+----------------+-----------+---------+----------
1 | tf-pink | pink123 | is 1+1=2? | True | -
2 | tf-pink | pink123 | is 1+1=2? | - | False
3 | tf-pink | pink123 | is 1+1=2? | - | False
4 | tf-pink | pink123 | is 1+1=2? | True | -
我想要做的是计算同一个问题中有多少真假,并通过JSON将其发送回android studio并显示出来。
我的php脚本看起来像这样:
<?php
if($_SERVER['REQUEST_METHOD']=='GET') {
require "conn.php";
$searchname = $_GET['searchname'];
$searchpassword = $_GET['searchpassword'];
$sql = "SELECT * FROM tfparticipator WHERE searchname = '".$searchname."' AND searchpassword = '".$searchpassword."'";
$r = mysqli_query($conn,$sql);
$res = mysqli_fetch_array($r);
$result = array();
$countTrue = 0;
$countFalse = 0;
while($row = mysqli_fetch_array($r))
{
if(($row['ansTrue'] === "True"))
{
$countTrue = $countTrue + 1;
}
if(($row['ansFalse'] === "False"))
{
$countFalse = $countFalse + 1;
}
}
array_push($result,array("question"=>$res['question'], "ansTrue"=>$countTrue, "ansFalse"=>$countFalse));
echo json_encode(array("result"=>$result));
$conn->close();
}
?>
结果应为True = 2
和False = 2
,但它现在显示True = 2
和False = 1
。
我能知道我做错了什么吗?
答案 0 :(得分:0)
您使用
行丢弃一行结果$res = mysqli_fetch_array($r);
如果删除它,您将更接近目标
答案 1 :(得分:0)
试试这个
$ row = mysqli_fetch_array($ r,MYSQLI_ASSOC);