这条语句
SELECT * FROM  ORDER BY RAND() LIMIT 5
我在mysql上测试,没有返回结果,也就是$result没有返回值。
因为没有返回结果,你用mysql_fetch_array()就肯定出错了。
也就提示你有不合法的变量了。

解决方案 »

  1.   

    哦,对不起,我忘了打table名,$sql = "SELECT * FROM mytable ORDER BY RAND() LIMIT 5";关键是我在两个系统下同样的文件下,window的apache没问题,solaris就出问题
      

  2.   

    此为windows下mysql查询:
    mysql>  SELECT * FROM icon ORDER BY RAND() LIMIT 5;
    +--------+-------+--------------+
    | iconid | title | iconpath     |
    +--------+-------+--------------+
    |     12 | 12    | icons/12.gif |
    |     14 | 14    | icons/14.gif |
    |      6 | 06    | icons/06.gif |
    |     78 | 78    | icons/78.gif |
    |     45 | 45    | icons/45.gif |
    +--------+-------+--------------+
    5 rows in set (0.05 sec)
    下面是solaris的mysql下:mysql> SELECT * FROM icon ORDER BY RAND() LIMIT 5;
    ERROR 1064: You have an error in your SQL syntax near 'RAND() LIMIT 5' at line 1
    mysql>
    同样的语句不同的结果,到底怎回事?怎么修改下面的语句使其达到上面的功能?
      

  3.   

    :《好奇怪,
    RAND()是MySQL的系统函数呀,
    除非你solaris下的MySQL是3.23以下的