出错的部分是:
while (odbc_fetch_row($result))
{
$myarray = array (odbc_result($result,1),odbc_result($result,2),odbc_result($result,3),odbc_result($result,4))
while(list($menu_id,$menu,$menu_grade,$menu_superior)=$myarray)
{
$menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;
$i++;
}
my_menu($menu_content,$i,1,$menu_superior_temp);// 执行此函数
}好像主要是list()函数有问题,说是类型不匹配,可不可以帮忙看看是什么问题。
while (odbc_fetch_row($result))
{
$myarray = array (odbc_result($result,1),odbc_result($result,2),odbc_result($result,3),odbc_result($result,4))
while(list($menu_id,$menu,$menu_grade,$menu_superior)=$myarray)
{
$menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;
$i++;
}
my_menu($menu_content,$i,1,$menu_superior_temp);// 执行此函数
}好像主要是list()函数有问题,说是类型不匹配,可不可以帮忙看看是什么问题。
这里为什么要用循环呢?很不解循环恐怕得死机,这个循环退不出来丫?
odbc_result($result,"字段名")
这样程序更容易理解一些
list()=后面用什么类型呢?
我是想把数据源test中的tt表中内容取出来,怎么办呢?
那我用while(list($menu_id,$menu,$menu_grade,$menu_superior)=odbc_fetch_row($result)行么?因为这样用总是报告说类型不匹配,所以我就试着用了一个数组变量
{
$menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;
$i++;
my_menu($menu_content,$i,1,$menu_superior_temp);// 执行此函数
}
这样不行吗?
---
通过odbc调用mysql,只能使用一些普通的sql语句,像什么limit是不可以得了。
while (odbc_fetch_row($result)) {
$menu_content[$i]=odbc_result($result,1)."/".odbc_result($result,2)."/".odbc_result($result,3)."/".odbc_result($result,4);
$i++;
my_menu($menu_content,$i,1,$menu_superior_temp);// 执行此函数
}
我试了一下,报告说我没有配置好数据源
Warning: SQL error: [Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序, SQL state IM002 in SQLConnect in c:\inetpub\wwwroot\mymenutest1.php on line 56
联结数据库出错!
第56行是
if ($con_id = odbc_connect("test","root","root",SQL_CUR_USE_ODBC))
可是我在ODBC数据源中明明就是设置了一个windows DSN name 为test,MYSQL database name 也为test的数据源,怎么还是出错呢?
以上是在IE中测试的,我有一个php工具php expert editor 2.5,它有一个测试的功能,在这里面试的时候是空白一片,没有任何显示
多谢多谢,等我把连接数据源的问题解决后试一下你那个方法,多谢了!
测试一下。
这是在php expert editor中的测试结果:Warning: SQL error: [TCX][MyODBC]No Database Selected, SQL state S1000 in SQLExecDirect in C:\Inetpub\wwwroot\mymenutest2.php on line 63Warning: Supplied argument is not a valid ODBC result resource in C:\Inetpub\wwwroot\mymenutest2.php on line 77
这是在IE中的结果:
Warning: SQL error: [Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序, SQL state IM002 in SQLConnect in c:\inetpub\wwwroot\mymenutest2.php on line 56
联结数据库出错!
选用系统dsn,这个对机器上的进程都可见。我用的是3.51的odbc驱动,然后你数据源设置好了后,可以下面有个按钮测试一下
连接成功,会提示success的,只要那里测试成功了,就可以用了。
连接成功,会提示success的,”我试了一下,不过没有找到那个按钮测试,也没有什么提示success,还有就是我把同一个文件村为两个不同的文件名后,执行时结果不一样,一个是刚才说的那个错误,还有一个就是空白一片,怎么会这样呢?
叫做
test data sourcephp.ini
display_errors=On就可以显示错误了
再说如果用数据源的话,那得先安装mysqlodbc
否则,怎么建立odbc的mysql,数据源丫。补充一点:我用的是 3.51的驱动,^_^
对不起,昨天网断了,没有回你的贴子:)
你说得我试过了,
也显示success了,但是在php expert editor中还是没有运行结果,只是空白一片,在IE 中也是这样,连错误信息也没有了,我都不知怎么改了!
算了,都是周末了,我先给分吧,下个星期还请多帮忙,多谢了!
display_errors=On就可以显示错误了