0

我的项目是一个读取数据库并发送电子邮件的网络应用程序。我今天插入了数据库,“示例”中的一个工作正常,但没有真正的那么多行。

我的问题是我所做的其中一个查询中的某些东西(数据库端)使 $results 为空。

$selected_category = (isset($_POST['category'])) ? $_POST['category'] : null;
$group = (isset($_POST['group'])) ? $_POST['group'] : null;

if ($selected_category) {

    if ($selected_category && $group) {
        //para se for selecionado o grupo

        if ($selected_category == "-1") {
            //para todas as categorias juntas
            if ($group == "-1") {
                $results = DB::query("SELECT category, name, email FROM clients LIMIT 100");
            } else {
                $results = DB::query("SELECT category, name, email FROM clients LIMIT %i, 100",$group );
            }

        } else {
            //para as categorias
            if ($group == "-1") {
                $results = DB::query("SELECT category, name, email FROM clients WHERE category = %i LIMIT 100", $selected_category );
            } else {
                $results = DB::query("SELECT category, name, email FROM clients WHERE category = %i LIMIT %i, 100", $selected_category, $group );
            }
        }

error_log(mysql_error());
        echo json_encode($results);
    } else {
        //para se for selecionada a categoria
        //se for -1 manda todas as categorias
        if ($selected_category == "-1") {
            //MAL
            $count = DB::query("SELECT COUNT(category) AS cat FROM clients");
            $count["category"] = "all";
            echo json_encode($count);
            //$results = DB::query("SELECT category, name, email FROM clients");
        } else {
            $count = DB::query("SELECT COUNT(category) AS cat FROM clients WHERE category = %i", $selected_category );
            //$results = DB::query("SELECT category, name, email FROM clients WHERE category = %i", $selected_category );
            $cat = DB::query("SELECT name FROM categories WHERE super_id = %i", $selected_category);
            $count["category"] = $cat;
            echo json_encode($count);
        }


    }

    //echo json_encode($results);
}

这是我认为错误所在的部分。请注意,我更改的变量是$ category并选择查询中的限制($group)。

一个可行的例子是当我让 $selected_category = -1(这意味着我想要所有类别)并且我让 $group = -1(前 100 行)或 $group = 100(100º 行之后的 100 行)时, mysql 返回正确的值。但是当我使 $group = 200 (选择行 200º 之后的 100 行)时,mysql 不返回任何内容,我得到空数组

你们有任何想法可能会破坏我的数据吗? 我已经修剪了它,它什么也没做。我真的被困住了,我需要在下周五之前完成这个,否则我不会得到报酬!

谢谢你们!并希望有人能帮助我。

编辑: 所以,我已经做了: 1 -在这个答案 之后将数据库更改为 utf-8 ;2 -latin1将 meekrodb 文件中的两行更改为utf8; 3 -将 ut8_encode php 函数添加到 $results

$json = utf8_encode(json_encode( $results )); 
        if ( $json === false ) echo "ERROR: " . json_last_error_msg(); else echo $json;

现在我不再有 utf_8 json 错误,但 $results 仍然是空的。

EDIT2 我将所有这些都传递给了生产服务器并猜猜是什么......它可以工作。有些东西我还不能理解。谢谢大家花时间解决我的问题!:)

4

0 回答 0