我想从数据库中获取可变数据“$ b,$ d,$ f,$ h”然后计算它。这是我的例子:
<?php
$host="localhost";
$username="root";
$password="root";
$db_name="cbrteh"
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$b= mysql_query("SELECT bobot FROM atribut where id= 1");
($row = mysql_fetch_assoc($b));
$row["bobot"];
$d= mysql_query("SELECT bobot FROM atribut where id= 2");
($row = mysql_fetch_assoc($d));
$row["bobot"];
$f= mysql_query("SELECT bobot FROM atribut where id= 3");
($row = mysql_fetch_assoc($f));
$row["bobot"];
$h= mysql_query("SELECT bobot FROM atribut where id= 4");
($row4 = mysql_fetch_assoc($h));
$row["bobot"];
$calc = $b+$d+$f+$h;
echo $calc;
<?
数据库中的值是50,50,50,50,但结果是22.为什么会这样?
答案 0 :(得分:1)
每个查询字符串下面的行都是错误的
($row = mysql_fetch_assoc($b));
$row["bobot"];
因为您没有将结果存储在任何地方。获取值的正确方法应该是:
if(count($res=mysql_fetch_assoc($b))>0)$_b=$res[0]['bobot'];
(如果返回结果至少有一行,则将值返回$_b
变量)
请注意$b
用于存储查询结果,而不是您从中获取的值。
然后你将结果总结如下:
$calc = $_b+$_d+$_f+$_h;
就是这样。
答案 1 :(得分:0)
您似乎可以在数据库中完成所有工作:
$query = mysql_query(
"SELECT SUM(bobot) AS summation FROM atribut where id IN (1,2,3,4)"
);
$row = mysql_fetch_assoc($query);
$calc = $row['summation'];
我已将$row
的作业中不必要的括号删除,当然我只用一个替换了四个单独的查找。由于我已经使用了分组功能SUM
,因此我将其别名为summation
,因此很容易从行中检索。