|
今天写一个从mysql数据库中读取网站导航菜单的程序,最初直接使用变量可以很好地输出,后来为了调用每个菜单名字、链接方便,改用了数组。问题就在这里出现了:
- function menu() {
- $sql=$GLOBALS['sql'];
- $sql->Query("Select name,link from menu order by number");
- $num=$sql->rows;
- for ($i=0;$i<$num;$i++) {
- $sql->Fetch($i);
- $menu[$i][0]=$sql->data[0];//菜单的名字
- $menu[$i][1]=$sql->data[1];//菜单链接的URL地址
- }
- return $menu;
- }
复制代码
这段代码无论如何都不能把菜单名字和链接完整地赋予menu数组的,如果在menu数组前添加
- $display=$sql->data[0];
- echo ""$display=$display<br />\n";
- $menu[$i][0]=$display;
复制代码
函数依然不能返回导航菜单的内容,一个也没有!为什么?查php手册
- 如果你给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值 + 1。如果当前还没有整数索引,则键名将为 0。如果制定的键名已经有值了,该值将被覆盖。
复制代码
所以,必须将- $menu[$i][0]=$sql->data[0];
复制代码 改为- $menu[][0]=$sql->data[0];
复制代码
至于后面的那句为什么不改,因为上面我们修改的那句已经创建了一个新的键名了,这里直接使用就可以了。现在就可以直接使用menu数组在页面任何位置显示指定的菜单项了,本人认为这一点对于开发动态网站发布程序至关重要。 |
|