Re: Most efficient way to randomize a quiz from a database [message #170598 is a reply to message #170597] |
Tue, 09 November 2010 16:09 |
Erwin Moller
Messages: 228 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 11/9/2010 3:55 PM, Matthew Leonhardt wrote:
> "Erwin Moller"
> <Since_humans_read_this_I_am_spammed_too_much(at)spamyourself(dot)com> wrote in
> message news:4cd91905$0$41103$e4fe514c(at)news(dot)xs4all(dot)nl...
>> On 11/8/2010 7:52 PM, Mason Barge wrote:
>>> On Mon, 8 Nov 2010 11:45:16 -0500, "Matthew Leonhardt"
>>> <matt(at)mattleonhardtmusic(dot)com> wrote:
>>>
>>>> "Mason Barge"<masonbarge(at)gmail(dot)com> wrote in message
>>>> news:s87gd61ldtnkeuuc817uiej2qmv0s4vc88(at)4ax(dot)com...
>>>> > I'm creating a quiz using PHP 5.3 and MySQL (mysqli). The database has
>>>> > about 1000 questions and answers, in categories, and I want to ask 12
>>>> > randomly selected questions, one at a time.
>>>> >
>>>> > Which would be more efficient:
>>>> >
>>>> > 1) Make one call to the database and build an array, stored in session
>>>> > variables, of 12 randomly chosen rows; or
>>>>
>>>> Most likely this method. You're talking about a fairly small amount of
>>>> data
>>>> though, so I highly doubt you need to be worried about efficiency...
>>>>
>>>> > 2) Make 12 requests to the database?
>>>> >
>>>> > I'm open to other general approaches if anyone has a suggestion I
>>>> > haven't
>>>> > considered.
>>>>
>>>> You could also opt for a hybrid solution...generate a session array
>>>> containing 12 primary keys and then with each page load, just pop the
>>>> next
>>>> question, so to speak :)
>>>
>>> Yeah that's what I'd do.
>>>
>>>> > I'd like to avoid reloading the page after every answer and I don't see
>>>> > how I could use Ajax with #1. The quiz has to be in PHP because I need
>>>> > to
>>>> > generate the final score as a PHP variable, not a javascript variable.
>>>>
>>>> I don't see how #1 prevents an AJAX solution. What's your cause for
>>>> worry
>>>> about that? Regarding the language in which the final score is
>>>> calculated,
>>>> look at json_encode() and json_decode() for convenient data-passing
>>>> between
>>>> the two languages.
>>>>
>>>
>>> Thanks so much, I've been out of touch with PHP for a long time and
>>> didn't
>>> know about JSON. It solves so many problems with this kind of thing.
>>
>> Hi Mason Barge,
>>
>> I don't want to be too negative, but you exaggerate things.
>> JSon is just a dataformat definition to exchange data.
>
> Yes...
>
>> You have *your* serverside PHP scripts, and *your* JavaScript in the
>> browser.
>> So you might as well make up your own format and use that. ;-)
>> I don't see how JSON is solving so many problems for you.
Hi Matthew,
It seems I have irritated you, which was not my intention.
Read on.
>
> ...how does it just being a format definition (with provided functions for
> performing data conversion) NOT solve problems? Why was it functionalized
> into the language if it *didn't* solve problems?
Strawman fallacy: You are not attacking my statements or position (or
intention!), but a ridiculed version of it.
I never said JSON doesn't solve problems.
I have no problems with JSON at all: JSON is a nice way to transport
data, and thus a time-saver in some situations.
>
> Passing a complex JS object to a PHP AJAX script--problem. Using JSON as an
> encoding method--solution.
>
Yes, I know that, but.... A complex JavaScript object? For a quiz?
I am sure you can think up a few ways to pack questions and answers and
unpack them in JavaScript.
(I programmed those in hidden/refresh frames long before XMLHttpRequest
was there. That really isn't complex at all.)
The reason I replied (to Mason Barge) was only because I got the
impression he was missing something: Like he didn't know/understand
that he could send *any* data that suited him with a XMLHttpRequest
alone, with or without JSON.
He also seems to think JSON is something of PHP ("Thanks so much, I've
been out of touch with PHP for a long time and didn't know about JSON.").
If JSON is anything, it is JavaScript. Other languages simply offer the
JSON-packing.
So I told Mason he can send *any* data since it is his PHP output and
his JavaScript. I think that is important for him to understand.
Call me olf-fashioned, but I think a programmer should first understand
the nature of a XMLHttpRequest, exchange some data, and then, when
understanding the process, use JSON.
In that order.
Regards,
Erwin Moller
--
"There are two ways of constructing a software design: One way is to
make it so simple that there are obviously no deficiencies, and the
other way is to make it so complicated that there are no obvious
deficiencies. The first method is far more difficult."
-- C.A.R. Hoare
|
|
|