我有一个查询,我得到一行的值。为此我使用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);
答案 0 :(得分:2)
此错误的可能性您的查询必定已失败 ..因为您要在$row
循环内将值$distancia
分配给while
,所以由于查询失败,控件不会被删除,但您正在访问循环外的$distancia
变量。
即。
$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。所以我调整它来使用这些结果的总和。