2017-02-14 81 views
1
$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) 。 请帮助如何计算0111为0 + 1 + 1 + 1 = 3在php中

+0

了解有关JOIN的内容。并停止使用PHP的弃用mysql_ API。 – Strawberry

+0

像这样:'echo 0 + 1 + 1 + 1;' –

+0

**警告**您的代码容易受到sql注入攻击 –

回答

3

str_split分割成数的阵列和阵列中的每个数字概括起来使用array_sum

与结果数据

array_sum(str_split($data)); 
0

str_split字符串转换成数组替换$data。然后你可以遍历这些值并添加它们,使用类型转换将它们设置为int,然后添加。

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

中删除我认为我们不应该鼓励使用已弃用的API – Strawberry

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'; 
+0

非常感谢草莓 –

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; 
+0

这不能提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 - [来自评论](/ review/low-quality-posts/15205070) – Farkie

+0

@Farkie它确实试图回答这个问题(尽管很糟糕)。见[这篇文章](http://meta.stackoverflow.com/questions/287563/youre-doing-it-wrong-a-plea-for-sanity-in-the-low-quality-posts-queue) – Machavity

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; 
?> 

希望这可能对你有用。