Глобально задача состоит в том, чтобы из БД вынуть все данные, соответсвующие article_kingdom ='FNG', которые будут сортироваться по алфавиту.
Проблема в том, чтобы ограничить эти данные и построить таблицу. Не получается правильно посчитать количество строк в таблице. Вот так это выглядит:
if (!isset($_GET['sortby']) || !preg_match("/^[0-9A-Za-zА-Яа-я]$/", $_GET['sortby'])) { $_GET['sortby'] = "all"; }В этом случае сортировка работает, но считаются строки по всей базе. А мне надо только article_kingdom ='FNG'. Если в dbquery добавляю усливие WHERE, то сортировщик ругается и ничего не работает.
$orderby = ($_GET['sortby'] == "all" ? "" : " WHERE article_subject LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT * FROM ".DB_ARTICLES.$orderby."");
$rows = dbrows($result);
Пробовал посчитать строки вот так
$rows = dbcount("(article_kingdom)",DB_ARTICLES,"article_kingdom ='FNG'");но в таком случае строки не реагируют на сортировку.
Спустя 41 минута, 11 секунд (12.07.2010 - 11:03) SlavaFr написал(а):
ну если сортировщик ругаетсй, то напиши нам его ругань.
dbrows, dbquery, dbcount кстете не стандартные функции пхп, так что влезь в функции до того момента где они получают SQL как стринг и покажи нам как окончательный SQL выглядит.
dbrows, dbquery, dbcount кстете не стандартные функции пхп, так что влезь в функции до того момента где они получают SQL как стринг и покажи нам как окончательный SQL выглядит.
Спустя 22 минуты, 47 секунд (12.07.2010 - 11:26) ssa написал(а):
Насколько я понял проблему, решение вот:
$orderby = ($_GET['sortby'] == "all" ? "" : " AND article_subject LIKE '".stripinput($_GET['sortby'])."%'");
$sql = "SELECT * FROM ".DB_ARTICLES."
WHERE article_kingdom ='FNG'
".$orderby."
ORDER BY article_subject";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
Спустя 36 минут, 48 секунд (12.07.2010 - 12:03) phagos написал(а):
Большущее спасибо!
Всё заработало адекватно. Оказывается кроме количество строк, я написал кривой код для заполнения таблицы. Но благодаря коду ssa во всем разобрался.
Всё заработало адекватно. Оказывается кроме количество строк, я написал кривой код для заполнения таблицы. Но благодаря коду ssa во всем разобрался.