Simple Machines Community Forum

Customizing SMF => SMF Coding Discussion => Topic started by: eKKiM on September 01, 2016, 01:53:55 PM

Title: $smcFunc['db_query'](..) nested queries
Post by: eKKiM on September 01, 2016, 01:53:55 PM
Hi is there any way to executed nested queries using $smcFunc['db_query'](..)

I have a special case where i want to build a ranking system.

I have kind of the following structure:

+------------------------------------------------------+
|             smf_challenge_completions                |
+--------------+-----------+--------+------------------+
| id_challenge | id_member | points | submit_timestamp |
+--------------+-----------+--------+------------------+
| ....


SELECT id_member, SUM(points) AS total_points, MAX(submit_timestamp), @rownum := @rownum + 1 AS rank
FROM smf_challenge_completions, (SELECT @rownum := 0) r
ORDER BY total_points DESC, submit_timestamp DESC
GROUP BY id_member, rank

and

SELECT rank FROM
(
SELECT id_member, SUM(points) AS total_points, MAX(submit_timestamp), @rownum := @rownum + 1 AS rank
FROM smf_challenge_completions, (SELECT @rownum := 0) r
ORDER BY total_points DESC, submit_timestamp DESC
GROUP BY id_member, rank
)  AS t
WHERE id_member = ?


Always getting Hacking attempt... because of db_query security..
Title: Re: $smcFunc['db_query'](..) nested queries
Post by: vbgamer45 on September 01, 2016, 01:55:43 PM
Set before you run the query
$modSettings['securityDisable'] = 1;

And after your run it set it to
$modSettings['securityDisable'] = 0;
Title: Re: $smcFunc['db_query'](..) nested queries
Post by: eKKiM on September 01, 2016, 05:25:47 PM
It seems like


$modSettings['disableQueryCheck'] = 1;


does the trick
Title: Re: $smcFunc['db_query'](..) nested queries
Post by: vbgamer45 on September 01, 2016, 05:52:19 PM
Oops yeah meant that one.
Title: Re: $smcFunc['db_query'](..) nested queries
Post by: Matthew K. on September 01, 2016, 08:49:22 PM
You could also probably use a JOIN...