如何在011中将0111计为0 + 1 + 1 + 1 = 3

时间:2017-02-14 10:56:10

标签: php mysql

$query33=mysql_query("SELECT * FROM order_payment_tb where order_status='Success'",$conn) or die (mysql_error());
while($row33=mysql_fetch_array($query33)) {
  $query3=mysql_query("SELECT * FROM user_order_tb where status='Pending' and order_id='".$row33['order_id']."'",$conn) or die (mysql_error());
  $count5=mysql_num_rows($query3);
  {
    echo $count5; ?>
  <?php
  }
}
?>

我的mysql结果数据是0111,我想将数据显示为3,即(0 + 1 + 1 + 1 = 3)。 请帮忙

5 个答案:

答案 0 :(得分:3)

str_split将数字拆分为数组,数组中的每个数字都使用array_sum

求和

$data替换为结果数据

array_sum(str_split($data));

答案 1 :(得分:1)

答案等于此查询返回的行数...

SELECT x.name
     , x.the
     , y.columns
     , y.you 
     , y.actually
     , y.want
  FROM order_payment_tb x
  JOIN user_order_tb y
    ON y.order_id = x.order_id
 WHERE x.order_status = 'Success'
   AND y.status = 'Pending';

答案 2 :(得分:0)

str_split将字符串转换为数组。然后你可以循环遍历这些值并添加它们,使用类型转换将它们作为int然后再添加。

  $str = mysql_num_rows($query3);
  if ($str) {
     $arr = str_split($str);
     $sum = 0;
     foreach ($arr as $num) {
          $sum += (int) $num;
     }
     echo $sum;
  }
}
?>

答案 3 :(得分:0)

$string = '02113';
$stringArray = preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY);
$count = 0;

for ($i=0; $i < count($stringArray); $i++) {

    $count = $count + (int)$stringArray[$i];

}

echo $count;

答案 4 :(得分:0)

请尝试此操作,我已更新您的代码,以下是代码:

$query33=mysql_query("SELECT * FROM order_payment_tb where order_status='Success'",$conn) or die (mysql_error());
$sum = 0;
while($row33=mysql_fetch_array($query33)) {
  $query3=mysql_query("SELECT * FROM user_order_tb where status='Pending' and order_id='".$row33['order_id']."'",$conn) or die (mysql_error());
  $count5=mysql_num_rows($query3);
  $sum = $sum + $count5;

}
echo $sum;
?>

希望,这可能对你有用。