错误php:1054注意:未定义的变量:第39行的C:\ xampp \ htdocs \ awebarts \ app \ models \ Display.php中的数据

时间:2015-10-02 08:06:24

标签: php mysql variables undefined

我有一个错误未定义的变量返回数据。

<?php
function getData() {

        $query = "SELECT * FROM `$this->tablename` ORDER BY `id` DESC";

        if(!$sql = mysql_query($query))
        {
            echo mysql_errno();
        }
        else
        {
            $num = mysql_num_rows($sql);           
            if($num > 0)
            {
                for($i = 0; $i < $num; $i++)
                {
                    $data[$i] = mysql_fetch_array($sql);
                }                              
            }
        }        
        return $data;
    }
?>

2 个答案:

答案 0 :(得分:0)

$data循环之外定义for

function getData() {
    $query = "SELECT * FROM `$this->tablename` ORDER BY `id` DESC";
    $data = array();

    if(!$sql = mysql_query($query))
...

PS:停止使用mysql_*个功能。切换到MySQLiPDO

答案 1 :(得分:0)

问题非常清楚。在特定情况下,$ data未正确初始化:

  1. 当if语句“if(!$ sql = mysql_query($ query))”为真时,$ data永远不会被设置
  2. 如果if语句“if($ num&gt; 0)”为false(又名$ num&lt; = 0),则永远不会设置$ data。
  3. 因此,您会收到数据未定义的通知,因为只有当第一个if为false且第二个if为true时才会设置数据。

    要更正此问题并删除在函数开头初始化$ data所需的消息。