你没有注意到变量的作用域!!!$conn变量是定义在函数viewtop1() 之外,对于函数viewtop1() 来说$conn是不可见的。在函数内部使用$conn时,$conn是未定义的变量,当然会报错。解决方法:
(1)将$conn作为函数参数传入函数viewtop1() 里面
function viewtop1($conn){
……
}调用viewtop1($conn);(2)将$conn声明为全局变量建议使用方案1你的代码中有一些问题:
(1)函数viewtop1() 中$top1同样没有定义,数据库操作将会报错;
(2)当$num1==0时,$value1没有定义,会输出"<ul></ul>";$value1应放入$num1!=0的那个代码块中

解决方案 »

  1.   

    $sql_1="select * from ".$top1." where iid=0";我试着改为
    $sql_1="select * from $top1 where iid=0";还是出一样的错误提示的,如果不使用在FUNCTION中就能正常使用。
      

  2.   

    function viewtop1() {
    global $conn,$top1;
    $sql_1="select * from ".$top1." where iid=0";
    $data1=mysql_query($sql_1,$conn) or die(mysql_error());
    ....
    }

    function viewtop1() {
    $sql_1="select * from ".$GLOBALS['top1']." where iid=0";
    $data1=mysql_query($sql_1,$GLOBALS['conn']) or die(mysql_error());
    ....
    }

    function viewtop1($connect,$tbl_name) {
    $sql_1="select * from ".$tbl_name." where iid=0";
    $data1=mysql_query($sql_1,$connect) or die(mysql_error());
    ....
    }
    <? viewtop1($conn,$top1); ?></div>在函数中使用全局变量需显式的传递或在函数内声明