如何从数据库中检索值?

时间:2014-01-25 13:36:13

标签: php mysql

我想从数据库中获取可变数据“$ 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.为什么会这样?

2 个答案:

答案 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,因此很容易从行中检索。