MySQL иногда не возвращает те же результаты в php, что и в верстаке

Мой проект — это веб-приложение, которое читает базу данных и отправляет электронные письма.
Я вставил базу данных сегодня, и с «примером» все работало хорошо, но строк не было так много, как в реальной.

Моя проблема заключается в том, что что-то (сторона базы данных) в одном из запросов, которые я делаю, делает пустой результат $.

$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);
}

Это та часть, где я думаю, что ошибка.
Заметить, что переменные, которые я изменяю, $ категории и выбрать лимит в запросе ($ группа).

Практический пример — когда я делаю $ selected_category = -1 (это означает, что я хочу все категории), и я делаю $ group = -1 (первые 100 строк) или $ group = 100 (100 строк после строки 100º), mysql возвращает правильные значения. Но когда я делаю $ group = 200 (чтобы выбрать 100 строк после строки 200º), mysql ничего не возвращает и я получаю и пустой массив.

У кого-нибудь из вас есть идеи, которые могут повредить мои данные?
Я уже урезал это, и это ничего не сделало. Я действительно застрял, и мне нужно закончить это до следующей пятницы, иначе мне не заплатят!

Спасибо вам всем! И надеюсь, что кто-то может мне помочь.

РЕДАКТИРОВАТЬ:
Итак, я уже сделал:
1 — изменил базу данных на utf-8 после этот ответ;
2 — изменил две строки, которые говорят latin1 в файле meekrodb для utf8;
3 — Добавлена ​​функция php ut8_encode к результатам $

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

Теперь у меня больше нет ошибки utf_8 json, но $ результаты все равно остаются пустыми.

EDIT2
Я передал все это производственному серверу и угадаю, что …. это работает.
То, чего я пока не могу понять. Спасибо всем, кто провел время с моей проблемой! 🙂

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]