如果mysqli中的状态为3,则更改状态

时间:2016-10-06 09:48:06

标签: php sql mysqli

我有一个SQL查询来检查表中的状态。这是我的表和记录:



#table product#
id_pd    id_po    status
1        po001    0
2        po001    0
3        po001    0
4        po001    1



 如果所有记录都有id_po的状态echo "done";,如何1



<?php
include 'connection.php';

$qry = $db->query("SELECT status FROM product WHERE id_po='$id_po' ");
$fet = $qry->fetch_assoc();
if($fet['status'] == 1){
echo "done";
}


?>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:3)

您可以按最低状态检查:

$qry = $db->query("SELECT min(status) as min_status FROM product WHERE id_po='$id_po' group by id_po");
$fet = $qry->fetch_assoc();
if($fet['min_status'] == 1){
    echo "done";
}

答案 1 :(得分:0)

尝试这个,我没有尝试过,但我认为它给你的想法))

<?php
include 'connection.php';
$status = true;
$qry = $db->query("SELECT status FROM product WHERE id_po='$id_po' ");
while ($fet = mysql_fetch_assoc($qry)) { 

    if($fet['status'] == 0){
        $status = false;
    }
}
if($status){
    echo 'done';
}
?>

答案 2 :(得分:0)

您的情况是,如果所有状态均为1,那么状态就可以了。在这种情况下,您可以尝试这个

 // get all
 $qry = $db->query("SELECT count(*) all_status FROM product WHERE id_po='$id_po'");
 $fet = $qry->fetch_assoc();

 // get active
 $qry2 = $db->query("SELECT count(*) all_status FROM product WHERE id_po='$id_po' AND status >= 1");
 $fet2 = $qry2->fetch_assoc();

 // match both record
 if($fet1['all_status'] == $fet2['all_status']){
   echo "done";
 }
相关问题