У меня есть следующее, что я использую с таблицами данных, и он прекрасно работает, чтобы получить то, что мне нужно:
$table = 'full_data';
$primaryKey = 'index';
$columns = array(
array( 'db' => 'category', 'dt' => 0 ),
array( 'db' => 'value', 'dt' => 1 ),
array( 'db' => 'database_percent', 'dt' => 2),
array( 'db' => 'national_percent', 'dt' => 3 ),
array( 'db' => 'index_value', 'dt' => 4 ),
array( 'db' => 'quadrant', 'dt' => 5 )
);
$sql_details = array(
'user' => 'root',
'pass' => '*****',
'db' => 'my_db',
'host' => 'localhost'
);
require( 'ssp.class.php' );
echo json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);
Теперь я хотел бы исключить строки из того, что в конечном итоге отображается в JSON этим файлом. Запрос MySQL, который получает то, что я хочу, это:
SELECT * FROM `full_data` WHERE `category` NOT LIKE 'state'
Однако я понятия не имею, как включить это в мой php-файл, чтобы только правильные строки кодировались в JSON для использования в моей таблице. Совершенно новый для использования баз данных MySQL / PHP.
РЕДАКТИРОВАТЬ: вот мой ssp.class.php файл.
Я уверен, что есть много способов сделать это (и извините за вопрос с минимальными деталями), но вот что я смог сделать, чтобы заставить это работать.
Благодаря предложению @HartmutHolzgraefe я заглянул в свой файл класса SSP и нашел это:
// Main query to actually get the data
$data = SSP::sql_exec( $db, $bindings,
"SELECT SQL_CALC_FOUND_ROWS `".implode("`, `", SSP::pluck($columns, 'db'))."`
FROM `$table`
$where
$order
$limit");
Я просто обновил запрос, чтобы он соответствовал запросу, необходимому для исключения этих строк. Для этого мне пришлось сделать второй файл ssp.class.php, так как я использую оригинал в нескольких других местах, и он мне нужен как есть.
Как я уже сказал, я уверен, что есть лучший способ сделать это по сравнению с двумя этими файлами, но это был быстрый «взлом», который я смог придумать.
Других решений пока нет …