从变量中获取变量

时间:2014-04-29 08:58:06

标签: php

我有一个查询,我得到一行的值。为此我使用while循环读取行并进入循环我将值保存到变量中。然后我需要在循环中使用此变量,但是当我执行代码时,Apache会显示以下错误 Undefined variable: distancia 。我尝试将变量定义为全局变量,但它并没有改变它的值。如何在循环外使用变量? 这是我的代码:

$re=$mysqli->query("SELECT Distancia FROM DESPLAZAMIENTO");
while($row2=$re->fetch_array()){
    $distancia=$row2["Distancia"];
}
$paga=$paga+(($distancia*0.24)*2);

4 个答案:

答案 0 :(得分:2)

此错误的可能性您的查询必定已失败 ..因为您要在$row循环内将值$distancia分配给while,所以由于查询失败,控件不会被删除,但您正在访问循环外的$distancia变量。

足够的咆哮..如何解决这个问题?

  • 确保您的查询成功。
  • 另一种方法是检查rowCount,如果它为零,则不要执行以下操作。

即。

$re=$mysqli->query("SELECT Distancia FROM DESPLAZAMIENTO");
$row_cnt = $re->num_rows;

while($row2=$re->fetch_array()){
    $distancia=$row2["Distancia"];
}
if($row_cnt>0)
{
 $paga=$paga+(($distancia*0.24)*2);
}

答案 1 :(得分:1)

首先我不知道是否是拼写错误,但你错过了查询的双引号

$re=$mysqli->query("SELECT Distancia FROM DESPLAZAMIENTO");

然后尝试这段代码:

$re=$mysqli->query("SELECT Distancia FROM DESPLAZAMIENTO");
while($row2=$re->fetch_array()){
    $distancia=$row2["Distancia"];

    $paga=$paga+(($distancia*0.24)*2);
}

答案 2 :(得分:0)

试试这个;

$distancia = "";

$re = $mysqli_query("SELECT Distancia FROM DESPLAZAMIENTO", YOUR_CONNECTION_STRING);

while( $row2 = mysqli_fetch_array($re) )
{
    $distancia = $row2["Distancia"];
}

$paga=$paga+(($distancia*0.24)*2);

YOUR_CONNECTION_STRING替换为您的字符串。

答案 3 :(得分:0)

因为没有其他人似乎抓住了这个

$distancia = 0;

$re=$mysqli->query("SELECT Distancia FROM DESPLAZAMIENTO");  // doublequote at end
while($row2=$re->fetch_array()){
    //$distancia=$row2["Distancia"];
    $distancia += $row2['Distancia'];   
}
$paga+=(($distancia*0.24)*2);

对我来说,似乎你并没有想要获得一条记录。因此,如果这个循环通过distancia永远是最后的记录disancia。所以我调整它来使用这些结果的总和。