while循环中的未定义变量错误PHP - ACCESS

时间:2014-07-30 07:12:58

标签: php variables ms-access while-loop

我从php页面中的几个查询中获取数据。所有的循环和查询都运行得很好,但我在下面的错误中得到了错误。

错误一:

$sql_pso_sign="SELECT * FROM Table";
$rs_pso_sign=odbc_exec($conn,$sql_pso_sign);
if (!$rs_pso_sign) {
  exit("Error in SIGNATURE TABLE INFO SQL");
}
 while (odbc_fetch_row($rs_pso_sign)) {

      $psoName = odbc_result($rs_pso_sign, "NAME");
      $psoSign = odbc_result($rs_pso_sign, "SIGNATURE");
      $psoDate = odbc_result($rs_pso_sign, "DATE");

  }

  echo $psoName;

错误是未定义的变量:pso_name;

我已经从同一页面复制了其他循环工作正常。在同一页上工作的是

$sql_items="SELECT * FROM Table2";
$rs_items=odbc_exec($conn,$sql_items);
if (!$rs_items) {
  exit("Error in table2 SQL");
}
 while (odbc_fetch_row($rs_items)) {

    $calc = odbc_result($rs_items, "ITEMS_CALC");
    $dsd = odbc_result($rs_items, "ITEMS_DSD");
    $wrs = odbc_result($rs_items, "ITEMS_WRS");
    $specs = odbc_result($rs_items, "ITEMS_SPECS");
    $ochk = odbc_result($rs_items, "ITEMS_OTHERS");
    $otxt = odbc_result($rs_items, "ITEMS_OTHERS_TXT");

}
echo $calc;

我已经变得非常沮丧我已经删除并粘贴了来自其他人的循环,并且我已经在第一次查询的循环中进行了回显检查。

有什么建议吗?

实际代码:

$sql_pso_sign="SELECT * FROM SIGNATURES_DASO WHERE DASO_NO ='".$daso_no."'";
$rs_pso_sign=odbc_exec($conn,$sql_pso_sign);
if (!$rs_pso_sign) {
  exit("Error in SIGNATURE TABLE INFO SQL");
}
 while (odbc_fetch_row($rs_pso_sign)) {

      $psoName = odbc_result($rs_pso_sign, "NAME");
      $psoSign = odbc_result($rs_pso_sign, "SIGNATURE");
      $psoDate = odbc_result($rs_pso_sign, "DATE");

  }

 echo $psoName;

$ daso_no中有值,我检查了查询是否正确

2 个答案:

答案 0 :(得分:1)

你错了命名你的变量

$pso_name;

将其更改为

$psoName;

答案 1 :(得分:1)

检查查询是否返回一行:

$sql_pso_sign="SELECT * FROM SIGNATURES_DASO WHERE DASO_NO ='".$daso_no."'";
$rs_pso_sign=odbc_exec($conn,$sql_pso_sign);
if (!$rs_pso_sign) {
  exit("Error in SIGNATURE TABLE INFO SQL");
}
if (odbc_fetch_row($rs_pso_sign)) {

    $psoName = odbc_result($rs_pso_sign, "NAME");
    $psoSign = odbc_result($rs_pso_sign, "SIGNATURE");
    $psoDate = odbc_result($rs_pso_sign, "DATE");

    echo $psoName;
} else {
    echo "$daso_no not found.";
}

请注意,如果查询只返回一行,则不需要使用while循环。