【问题标题】:Mathematical operations using MySQL and/or PHP使用 MySQL 和/或 PHP 的数学运算
【发布时间】:2017-01-16 18:23:00
【问题描述】:

SQL1

$sql1 = "SELECT group_concat(Gericht_ID separator ',') as Gericht_ID FROM `warenkorb` WHERE Kunde_ID = '$kid'";
    $result = mysqli_query($con, $sql1);
    $row = mysqli_fetch_array($result);
    $gerid = $row["Gericht_ID"];
    print $gerid;

SQL2

$sql2 = "SELECT group_concat(warenkorb.Menge separator ',') AS Menge FROM warenkorb INNER JOIN enthaelt ON  warenkorb.Gericht_ID=enthaelt.Gericht_ID WHERE enthaelt.Gericht_ID IN($gerid) AND warenkorb.Kunde_ID='$kid'";
    $result = mysqli_query($con, $sql2);
    $row = mysqli_fetch_array($result);
    $gwmenge = $row["Menge"];       
    print $gwmenge; //i get here 1,1,1,1,3,3,3

SQL3

$sql3 = "SELECT group_concat(zutaten.Menge separator ',') as Menge FROM `zutaten` INNER JOIN enthaelt ON zutaten.Zutat_ID=enthaelt.Zutat_ID WHERE Gericht_ID IN($gerid)";
    $result = mysqli_query($con, $sql3);
    $row = mysqli_fetch_array($result);
    $gzmenge = $row["Menge"];
    print $gzmenge; //I get here 45,76,10,92,32,88,36

SQL4

$sql4 = "SELECT group_concat(Menge separator ',') as Menge FROM `enthaelt` WHERE Gericht_ID IN($gerid)";
    $result = mysqli_query($con, $sql4);
    //print $sql4;
    $row = mysqli_fetch_array($result);
    $gemenge = $row["Menge"];
    print `$gemenge` // I get here 3,1,2,2,3,2,1
    $mengetotal=$gwmenge*$gemenge;// here i want (1,1,1,1,3,3,3 *3,1,2,2,3,2,1) =3,1,2,2,9,6,3
    print $mengetotal;
    $mengezutaten =$gzmenge - $mengetotal;// here i want(45,76,10,92,32,88,36- 3,1,2,2,9,6,3)= 42,75,8,90,23,82,33
    print $mengezutaten;

我怎样才能做到这一点?我的代码 mybe 不正确,对此我深表歉意。有人能帮我吗 ?提前谢谢你。

【问题讨论】:

  • $gwmenge 是什么数据类型?
  • @Tony it array ,但我不知道我所做的是否正确,我实际上不知道如何做到这就是我寻求帮助的原因
  • 你能给我这个 $gwmenge,$gemenge $mengetotal 变量的输出吗?
  • 我在那里写输出 $gwmenge; //我到达这里 1,1,1,1,3,3,3 $gzmenge; //我在这里 45,76,10,92,32,88,36 $gemenge // 我在这里 3,1,2,2,3,2,1

标签: php mysql variables mathematical-expressions


【解决方案1】:

修改后的托尼答案。在最终数组上使用implode() 函数。

<?php
$gwmenge = '1,1,1,1,3,3,3';
$gwmenge = explode(',',$gwmenge);

$gzmenge = '45,76,10,92,32,88,36';
$gzmenge = explode(',',$gzmenge);

$gemenge = '3,1,2,2,3,2,1';
$gemenge = explode(',',$gemenge);

// $mengetotal
for($i = 0; $i < sizeof($gwmenge); $i++){

    $mengetotal[] = $gwmenge[$i] * $gemenge[$i];
}

//mengezutaten 

for($i = 0; $i < sizeof($gzmenge); $i++){
    $mengezutaten[] = $gzmenge[$i] - $mengetotal[$i]; 
}


print_r(implode(',',$mengetotal));
echo "<br/>";
print_r(implode(',',$mengezutaten));

LIVE DEMO

在您的代码中只需更改如下代码:

$sql4 = "SELECT group_concat(Menge separator ',') as Menge FROM `enthaelt` WHERE Gericht_ID IN($gerid)";
    $result = mysqli_query($con, $sql4);
    //print $sql4;
    $row = mysqli_fetch_array($result);
    $gemenge = $row["Menge"];
        $gwmenge = explode(',',$gwmenge);
        $gzmenge = explode(',',$gzmenge);
        $gemenge = explode(',',$gemenge);

       // $mengetotal
        for($i = 0; $i < sizeof($gwmenge); $i++){
            $mengetotal[] = $gwmenge[$i] * $gemenge[$i];
        }

        //mengezutaten  
        for($i = 0; $i < sizeof($gzmenge); $i++){
            $mengezutaten[] = $gzmenge[$i] - $mengetotal[$i]; 
        }

        $mengetotal = implode(',',$mengetotal);
        $mengezutaten = implode(',',$mengezutaten);

【讨论】:

  • 问题是我得到 $gemenge = 3,1,2,2,3,2,1 没有 [] 和 ;
  • 这是我的荣幸。
【解决方案2】:
<?php

$gwmenge = [1,1,1,1,3,3,3];

$gzmenge = [45,76,10,92,32,88,36];

$gemenge = [3,1,2,2,3,2,1];


// $mengetotal
for($i = 0; $i < sizeof($gwmenge); $i++){

    $mengetotal[] = $gwmenge[$i] * $gemenge[$i];
}

//mengezutaten 

for($i = 0; $i < sizeof($gzmenge); $i++){
    $mengezutaten[] = $gzmenge[$i] - $mengetotal[$i]; 
}


print_r($mengetotal);
echo "<br/>";
print_r($mengezutaten);

?>

【讨论】:

  • 我到了 Array ( [0] => 3 ) 但我想在这里 3,1,2,2,9,6,3 Array ( [0] => 1 ) 在这里 42, 75,8,90,23,82,33
  • 我明白,但我想要所有的数字 3,1,2,2,9,6,3 和 42,75,8,90,23,82,33
  • 你有那些数字..我不明白。如果是关于逗号,我就出来了!
  • 问题是我得到了 $gwmenge = 1,1,1,1,3,3,3 而没有 [] mybe 这是问题吗?
猜你喜欢
  • 2012-04-18
  • 2012-01-16
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多