获取对象时出现PHP-SQL错误

获取对象时出现PHP-SQL错误,php,sql,fetch,Php,Sql,Fetch,我下面的代码有问题。 问题是: Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\Xampp\htdocs\apotek\models\transaksi.php on line 693 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\Xampp\h

我下面的代码有问题。 问题是:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\Xampp\htdocs\apotek\models\transaksi.php on line 693
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\Xampp\htdocs\apotek\models\transaksi.php on line 696
我希望我能在这里找到答案来解决问题。 事先非常感谢

以下是获得EROR的代码行:

 while ($row = mysql_fetch_object($query)) {
        $data[] = $row;
    }
    $total = mysql_num_rows(mysql_query($sql));
以下是完整的代码:

    function load_data_defecta($param) {
    $q = NULL;
    if ($param['id'] !== '') {
        $q.=" and s.id = '".$param['id']."' ";
    }
    if ($param['search'] !== '') {
        $q.=" and b.nama like ('%".$param['search']."%')";
    }
    $limit = " limit ".$param['start'].", ".$param['limit']."";
    $sql = "select s.*, b.kekuatan, b.id as id_barang, b.nama, b.stok_minimal, st.nama as satuan_kekuatan, sum(s.masuk) as masuk, 
        sum(s.keluar) as keluar, (sum(s.masuk)-sum(s.keluar)) as sisa 
        from stok s 
        join barang b on (s.id_barang = b.id) 
        left join satuan st on (b.satuan_kekuatan = st.id) 
        where b.id not in (select id_barang from defecta where status = '0') $q
        group by s.id_barang  
        having sisa <= b.stok_minimal order by b.nama";

    $query = mysql_query($sql.$limit);
    $data = array();
    while ($row = mysql_fetch_object($query)) {
        $data[] = $row;
    }
    $total = mysql_num_rows(mysql_query($sql));
    $result['data'] = $data;
    $result['total']= $total;
    return $result;
}

function get_distributor_by_barang($id_barang) {
    $sql = mysql_query("select s.nama from supplier s
        join penerimaan p on (s.id = p.id_supplier)
        join detail_penerimaan dp on (p.id = dp.id_penerimaan)
        join kemasan k on (k.id = dp.id_kemasan)
        join barang b on (k.id_barang = b.id)
        inner join (
            select id_kemasan, max(id) as id_max from detail_penerimaan group by id_kemasan
        ) dm on (dp.id_kemasan = dm.id_kemasan and dp.id = dm.id_max)
        where b.id = '$id_barang'
    ");
    $row = mysql_fetch_object($sql);
    return $row;
}

function pemesanan_plant_load_data($param = NULL) {
    $limit = NULL;
    if (isset($param['list'])) {
        $limit = " limit ".$param['start'].", ".$param['limit']."";
    }
    $sql = "select d.*, concat_ws(' ',b.nama, b.kekuatan, s.nama) as nama_barang from defecta d
        join barang b on (d.id_barang = b.id)
        left join satuan s on (b.satuan_kekuatan = s.id) where status = '0' order by b.nama";
    $query = mysql_query($sql.$limit);
    $data = array();
    while ($row = mysql_fetch_object($query)) {
        $data[] = $row;
    }
    $total = mysql_num_rows(mysql_query($sql));
    $result['data'] = $data;
    $result['total']= $total;
    return $result;
}

我对这一部分有疑问……我认为这一部分有问题,只是我不知道是哪一部分导致了问题

$sql = "select s.*, b.kekuatan, b.id as id_barang, b.nama, b.stok_minimal, st.nama as satuan_kekuatan, sum(s.masuk) as masuk, 
        sum(s.keluar) as keluar, (sum(s.masuk)-sum(s.keluar)) as sisa 
        from stok s 
        join barang b on (s.id_barang = b.id) 
        left join satuan st on (b.satuan_kekuatan = st.id) 
        where b.id not in (select id_barang from defecta where status = '0') $q
        group by s.id_barang  
        having sisa <= b.stok_minimal order by b.nama";

这些错误消息会提示我您的查询失败。您应该实现错误检查,以确保mysql\u查询返回预期的对象而不是false。使用mysql\u error获取最后一条错误消息。请注意MySQL现在已被弃用。您应该使用PDO或MySQLiIs作为数据库连接mysqli_uu吗?注意i?加上这个$query=mysql\u query$sql.$limit;这是有问题的。坦率地说,我对此知之甚少……我发现另一个部分也使用$query=mysql\u query$sql。$limit一点问题都没有,可以很好地运行。。。