如果指定的行在PHP中存在某些值/字符,则递增计数变量

时间:2016-10-09 08:21:39

标签: php

我是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 = 2False = 2,但它现在显示True = 2False = 1

我能知道我做错了什么吗?

2 个答案:

答案 0 :(得分:0)

您使用

行丢弃一行结果
$res = mysqli_fetch_array($r);

如果删除它,您将更接近目标

答案 1 :(得分:0)

试试这个

$ row = mysqli_fetch_array($ r,MYSQLI_ASSOC);