while循环PHP中的未定义变量错误-访问[关闭]
Posted
技术标签:
【中文标题】while循环PHP中的未定义变量错误-访问[关闭]【英文标题】:undefined variable error in while loop PHP - ACCESS [closed] 【发布时间】:2014-07-30 07:12:57 【问题描述】:我正在从 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;
我已经从其他人那里删除并粘贴了相同的 while 循环,并且我已经在第一个查询的 while 循环中放置了不回显的回显检查,这让我感到非常沮丧。
有什么建议吗?
实际代码:
$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 中有值,我检查了查询是否正确
【问题讨论】:
先修复语法错误。 markdown 荧光笔已经显示了它(或者可能只是一个错字) 其次,变量名为$psoName
而不是 $pso_name;
,这就是您看到的错误
这里只是一个错字,它的 $psoName 在 echo 中。
我正在使用dreamweaver,它说没有语法错误。
【参考方案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
循环。
【讨论】:
现在完美运行。谢谢你。一个问题。如果我们想要一条记录 while 循环不是最好的方法? 对。 while 循环用于重复处理所有记录。如果只有一条记录,则没有必要。【参考方案2】:你的变量命名错误
$pso_name;
改成
$psoName;
【讨论】:
缺少引号一定是复制错误,否则脚本甚至不会运行。 是的,你说得对 :) 我编辑了他的帖子和我的帖子 您在说哪些缺少的引号? @barmar? @Alz 当你发布这个问题时,你写了$sql_pso_sign="SELECT * FROM Table;
——那里没有结束引号。
为什么不粘贴实际代码和错误消息,而不是重新输入。那么您就不能打错字了,我们可以帮助您解决问题。以上是关于while循环PHP中的未定义变量错误-访问[关闭]的主要内容,如果未能解决你的问题,请参考以下文章