将从mysql检索到的所有值乘以常量

时间:2018-03-09 03:18:35

标签: php mysql while-loop

我正在以两行的形式检索数据库的所有值,并且需要将所有值乘以一个常量。 mysql查询:

$book= "SELECT distinct names, values FROM table1 where address =?"
        mysqli_stmt_bind_param($stmm, "s", $usa);
        mysqli_stmt_execute($sttm);
        $result= mysqli_stmt_get_result($sttm);
        $ress = mysqli_fetch_array($result)

在while循环中,我想将所有这些值乘以预定义的变量$ calc: 我现在想做这样的事情:

        $i = 1;     
    while($ress = mysqli_fetch_assoc($result))
        {   
        echo '<tr><td>'.$i.'</td>';
        $i += 1;
        echo '<td>'.$ress['names'].' </td>';
        echo '<td> '.$ress['values']*$calc.'</td>';
}
echo '</tr></table>';
}

请帮忙

3 个答案:

答案 0 :(得分:1)

您可能在while循环中遇到问题。

如果您在foreach

中有记录,则可以使用(array)$ress
    foreach($ress as $key => $row)
    {   
        echo '<tr><td>'.$key.'</td>';
        echo '<td>'.$row['names'].' </td>';
        echo '<td> '.($ow['values'] * $calc).'</td>';
    }
   echo '</tr></table>';   

答案 1 :(得分:1)

我认为您没有从数据库中获取数据。您的循环部分也有一些HTML标记匹配问题。我用我的本地数据库尝试了以下代码,循环部分运行良好。

<?php 
include '../inc/conn_stackoverflow.php';
$book= $con->prepare("SELECT distinct `date`, cntr FROM counter where id >?");
$usa=0;
$book->bind_param("i", $usa);
mysqli_stmt_execute($book);
$result= mysqli_stmt_get_result($book);
//echo "<pre>";
//var_dump($result);
$calc=100;

echo "<table>";
$i=1;
while($ress = mysqli_fetch_assoc($result))
        {   
        echo '<tr><td>'.$i.'</td>';
        $i += 1;
        echo '<td>'.$ress['date'].' </td>';
        echo '<td> '.((float)$ress['cntr']*(float)$calc).'</td>';
        echo '</tr>';
}
echo '</table>';

答案 2 :(得分:1)

有一些原因导致这种情况无效

主要原因是从数据库检索的数据不是int类型,我认为$ ress ['values']返回一个字符串,所以你需要检查它或在乘法之前将其解析为int