我的项目是一个读取数据库并发送电子邮件的网络应用程序。我今天插入了数据库,“示例”中的一个工作正常,但没有真正的那么多行。
我的问题是我所做的其中一个查询中的某些东西(数据库端)使 $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 我将所有这些都传递给了生产服务器并猜猜是什么......它可以工作。有些东西我还不能理解。谢谢大家花时间解决我的问题!:)