我从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中有值,我检查了查询是否正确
答案 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
循环。