Apologies for the perhaps poor title - It is best to display my goal visually:
I want something like this to show on the page when user goes to SomeURL.com/test.php?id=101
| Questions | Answers |
----------------------------------
| 1(a) First Name| Pedro |
----------------------------------
| 1(b) Surname | Millers |
----------------------------------
| 2(a) Weight | 150lbs |
----------------------------------
This will be acheived by queries to a mysql database. Firstly:
SELECT * FROM Questionnaire WHERE idQuestionnaire=101;
Which returns:
| idQuestionnaire | FirstName | Surname | Weight |
-----------------------------------------------------------
| 101 | Pedro | Millers | 150lbs |
In my table settings I have Column comments set. i.e. For the Column "FirstName" the comments read "1(a) First Name". To retreive all of these comments I can do another query:
SELECT COLUMN_NAMES FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Questionnaire';
Which returns:
| COLUMN_COMMENTS |
-------------------
| 1(a) First Name |
-------------------
| 1(b) Surname |
-------------------
| 2(a) Weight |
-------------------
The reason I want to automate the code with arrays/loops rather than hard code is because the actual table I am using has over 400 fields, and fields may be modified or added so I would like not to have to keep changing the php code as well when this happens. It seems like a pretty simple task but can't for the life of me find relevant documented solutions.
Finally, the solution. Spencer7593 got me on my way but the final code required is as follows:
$con=mysqli_connect("localhost","user","password","test");
if (mysqli_connect_errno($con)) {echo "MySQL conn. err:".mysqli_connect_error();}
$sql = "SELECT column_comment,column_name FROM information_schema.columns
WHERE table_name = 'mytablename';";
$query = mysqli_query($con,$sql) or die(mysql_error());
$columnArray = array();
while(($result = mysqli_fetch_array($query, MYSQL_ASSOC))){
if($result['column_comment'])
{
$CurCol = $result['column_comment'];
}
else
{
$CurCol = "No text stored";
}
$CurName = $result['column_name'];
$columnArray[$CurName]=$CurCol;
}
//echo $columnArray['FirstName']; //test example to return "1(a) First Name"
So I looped through fetch_fields to get the corresponding column comments, and then looped through the result of the answers query to display each answer down the next table column.