filteren data uit sql
Ik wil de startpunten van mijn wandelingen sorteren naar moeilijkheidsgraad.
Nu wordt het zo uit de database gehaald:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function getWaypoints() {
global $DEBUG, $cfg, $database;
$limit = intval($cfg['result_datalayer_limit']);
$query = "SELECT SQL_CALC_FOUND_ROWS wpt.* , `gpx`.`timezone`,
`gpx`.`name` AS 'gpx_filename', `gpx`.`description` AS `gpx_description`
FROM `${cfg['db_table_prefix']}waypoints` AS `wpt`
LEFT JOIN `${cfg['db_table_prefix']}gpx_files` AS `gpx`
ON `gpx_id` = `gpx`.`id` ";
global $DEBUG, $cfg, $database;
$limit = intval($cfg['result_datalayer_limit']);
$query = "SELECT SQL_CALC_FOUND_ROWS wpt.* , `gpx`.`timezone`,
`gpx`.`name` AS 'gpx_filename', `gpx`.`description` AS `gpx_description`
FROM `${cfg['db_table_prefix']}waypoints` AS `wpt`
LEFT JOIN `${cfg['db_table_prefix']}gpx_files` AS `gpx`
ON `gpx_id` = `gpx`.`id` ";
Ik dacht het te kunnen filteren met de toevoeging WHERE `gpx`.`user_id` == 5
Waar 5 dan voor de moeilijkheidsgraad staat.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function getWaypoints() {
global $DEBUG, $cfg, $database;
$limit = intval($cfg['result_datalayer_limit']);
$query = "SELECT SQL_CALC_FOUND_ROWS wpt.* , `gpx`.`timezone`,
`gpx`.`name` AS 'gpx_filename', `gpx`.`description` AS `gpx_description`
FROM `${cfg['db_table_prefix']}waypoints` WHERE `gpx`.`user_id` == 5 AS `wpt`
LEFT JOIN `${cfg['db_table_prefix']}gpx_files` AS `gpx`
ON `gpx_id` = `gpx`.`id` ";
global $DEBUG, $cfg, $database;
$limit = intval($cfg['result_datalayer_limit']);
$query = "SELECT SQL_CALC_FOUND_ROWS wpt.* , `gpx`.`timezone`,
`gpx`.`name` AS 'gpx_filename', `gpx`.`description` AS `gpx_description`
FROM `${cfg['db_table_prefix']}waypoints` WHERE `gpx`.`user_id` == 5 AS `wpt`
LEFT JOIN `${cfg['db_table_prefix']}gpx_files` AS `gpx`
ON `gpx_id` = `gpx`.`id` ";
Helaas werkt dat niet en wat nog jammer is dat er ook geen foutmeldingen op de pagina verschijnen.
Wie ziet de fout of kan mij verder helpen?
Enkele = in SQL
2) De WHERE komt na alle JOIN-s
3) Het klinkt mij een beetje raar dat je met `user_id` op moeilijkheidsgraad kunt filteren ...
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$query = "SELECT SQL_CALC_FOUND_ROWS wpt.* , `gpx`.`timezone`,
`gpx`.`name` AS 'gpx_filename', `gpx`.`description` AS `gpx_description`
FROM `${cfg['db_table_prefix']}waypoints` AS `wpt`
LEFT JOIN `${cfg['db_table_prefix']}gpx_files` AS `gpx`
ON `gpx_id` = `gpx`.`id`
WHERE `gpx`.`user_id` = 5";
`gpx`.`name` AS 'gpx_filename', `gpx`.`description` AS `gpx_description`
FROM `${cfg['db_table_prefix']}waypoints` AS `wpt`
LEFT JOIN `${cfg['db_table_prefix']}gpx_files` AS `gpx`
ON `gpx_id` = `gpx`.`id`
WHERE `gpx`.`user_id` = 5";
Gewijzigd op 31/10/2020 22:11:58 door Rob Doemaarwat
Edit, ook niet als ik de WHERE achteraan zet.
Wat puntje 3 betreft moet ik uiteraard de titel aanpassen en de moeilijkheidsgraad ingeven in die kolom.
Toevoeging op 31/10/2020 22:52:14:
Sorry het werkt wel, ben weer een stap verder nu, bedankt.
Gewijzigd op 31/10/2020 22:28:40 door Jan Bakker