_From @mattbk on October 29, 2015 3:10_
Missing from the project from which this was forked. Needs to create a table and some fields to hold results.
- [x] How are individual test-takers identified?
- by IP
_Copied from original issue: mattbk/changeblindnesstest#4_
Based on this section, it looks like each respondent is recorded as a single row (ID by IP address REMOTE_ADDR), with three columns per phase. These three columns record the xcoordinate, ycoordinate, and response time of the respondent.
Columns referenced now:
result_host
result_date
Option 1:
Continue with this schema, and create a table in the database for each study (group of phases/scenes) with fields based on settings.json. This format is probably easier for RAs to analyze unless it is rewritten before download. This also means that the number of columns has to be hardcoded into index.php unless this section is changed.
Option 2:
Rebuild the schema as EVA so that a study can be modified by changing settings.json and without needing to run a db install script.
Current db results table is named `vcd_results` ([`index.php` line 79](https://github.com/mattbk/changeblindnesstest/blob/master/index.php#L79)).
Based on this section, it looks like each respondent is recorded as a single row (ID by IP address `REMOTE_ADDR`), with three columns per phase. These three columns record the xcoordinate, ycoordinate, and response time of the respondent.
Columns referenced now:
- `result_host`
- `result_date`
#### Option 1:
Continue with this schema, and create a table in the database for each study (group of phases/scenes) with fields based on `settings.json`. This format is probably easier for RAs to analyze unless it is rewritten before download. This also means that the number of columns has to be hardcoded into `index.php` unless [this section](https://github.com/mattbk/changeblindnesstest/blob/master/index.php#L79) is changed.
#### Option 2:
Rebuild the schema as [EVA](https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model#Structure_of_an_EAV_table) so that a study can be modified by changing `settings.json` and without needing to run a db install script.
I think this is because the table and columns don't exist.
> Fatal error: Call to a member function bind_param() on a non-object in /home/mattbkco/public_html/_projects/change/index.php on line 80
http://php.net/manual/en/mysqli-stmt.bind-param.php
I think this is because the table and columns don't exist.
Got it to work in https://github.com/mattbk/changeblindnesstest/commit/839e7fe17f1d6b706a7b8b0015b3e95a55409257 (added the mysql error to `die()`), but phase names are still hardcoded.
First column of the database must be a generated UID.
That's exactly what it is (or, it works when you make it as such).
> First column of the database must be a generated UID.
That's exactly what it is (or, it works when you make it as such).

I know more. The way it is set up, the phase name needs to be in the field name as well.
_host
_date
_xcoordinate
_ycoordinate
_responsetime
are used in the code to pass to Twig.
I know more. The way it is set up, the phase name needs to be in the field name as well.
- `_host`
- `_date`
- `_xcoordinate`
- `_ycoordinate`
- `_responsetime`
are used in the code to pass to Twig.

Adding all of this to an install script would probably be easier than going an EVA route right now.
Then if you run another study in the future, you specify a different table name and can use the same database. Would be best to install in a different folder with a different settings.json, though.
Should work for now, except for all the hardcoded phase names!
Adding all of this to an install script _would_ probably be easier than going an EVA route right now.
Then if you run another study in the future, you specify a different table name and can use the same database. Would be best to install in a different folder with a different `settings.json`, though.
Should work for now, _except for all the hardcoded phase names!_
Hardcoded phase/scene names are only a problem in the part in index.php where they are written to db.
Since $_SESSION['results'] is a 2d array, can I use a nested foreach to build the insert query?
Hardcoded phase/scene names are only a problem in the part in index.php where they are written to db.
Since $_SESSION['results'] is a 2d array, can I use a nested foreach to build the insert query?
I had result_host and result_date swapped in table. Fixed now.
I had result_host and result_date swapped in table. Fixed now.

Still needs to be done; does NOT need settings.json to be completed first.
Still need to do this first: https://github.com/mattbk/changeblindness/issues/2
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
From @mattbk on October 29, 2015 3:10
Missing from the project from which this was forked. Needs to create a table and some fields to hold results.
Copied from original issue: mattbk/changeblindnesstest#4
Current db results table is named
vcd_results(index.phpline 79).Based on this section, it looks like each respondent is recorded as a single row (ID by IP address
REMOTE_ADDR), with three columns per phase. These three columns record the xcoordinate, ycoordinate, and response time of the respondent.Columns referenced now:
result_hostresult_dateOption 1:
Continue with this schema, and create a table in the database for each study (group of phases/scenes) with fields based on
settings.json. This format is probably easier for RAs to analyze unless it is rewritten before download. This also means that the number of columns has to be hardcoded intoindex.phpunless this section is changed.Option 2:
Rebuild the schema as EVA so that a study can be modified by changing
settings.jsonand without needing to run a db install script.http://php.net/manual/en/mysqli-stmt.bind-param.php
I think this is because the table and columns don't exist.
That's better, now we get
Could not execute query.Got it to work in https://github.com/mattbk/changeblindnesstest/commit/839e7fe17f1d6b706a7b8b0015b3e95a55409257 (added the mysql error to
die()), but phase names are still hardcoded.First column of the database must be a generated UID.
That's exactly what it is (or, it works when you make it as such).
I know more. The way it is set up, the phase name needs to be in the field name as well.
_host_date_xcoordinate_ycoordinate_responsetimeare used in the code to pass to Twig.
Adding all of this to an install script would probably be easier than going an EVA route right now.
Then if you run another study in the future, you specify a different table name and can use the same database. Would be best to install in a different folder with a different
settings.json, though.Should work for now, except for all the hardcoded phase names!
Hardcoded phase/scene names are only a problem in the part in index.php where they are written to db.
Since $_SESSION['results'] is a 2d array, can I use a nested foreach to build the insert query?
$_SESSION['results'['scene1'] is not built right. Should be $_SESSION['results'['phase1']. Scene1 is a value, not a key. Hmm.
I had result_host and result_date swapped in table. Fixed now.

Still needs to be done; does NOT need settings.json to be completed first.
Still need to do this first: https://github.com/mattbk/changeblindness/issues/2