я в настоящее время в процессе создания викторины, с форматом таблицы:Использование цикла Foreach для присвоения значений массива в нескольких массивах
| id | question | option1 | option2 | option3 | answer |
--------------------------------------------------------
| 1 | What is my name? | Dave | Bob | Charles | Linda |
Я пытаюсь проверить ответы пользователя и я не совсем конечно, как это сделать. Я немного тупик, используя цикл foreach, чтобы назначать значения массива другим массивам. Следующий код в matresult.php неправильно, но он должен показать, что я пытаюсь достичь:
Within matquiz.php У меня есть
//MySql query to select all data from matquiz table
$query="SELECT * FROM MatQuiz";
//Assign the query to a result variable
$result = mysql_query($query, $connect);
while($row = mysql_fetch_assoc($result)){
CODE
}
Within matresult.php У меня есть
$array3 = array();
$array4 = array();
$array5 = array();
$array6 = array();
$array7 = array();
$array8 = array();
$finalresults = array($row['ID'], $row['question'], $row['option1'], $row['option2'], $row['option3'], $row['answer']);
foreach($finalresults as $value){
array_push($array3, $value['ID']); //ID
array_push($array4, $value['question']); //question
array_push($array5, $value['option1']); //op1
array_push($array6, $value['option2']); //op2
array_push($array7, $value['option3']); //op3
array_push($array8, $value['answer']); //answer
}
Что Я пытаюсь добиться того, чтобы указать значение массива $ finalresults в 6 отдельных массивов и сделать это для 5 вопросов/строк.
Так, например, я хочу, чтобы array3 содержал все 5 идентификаторов вопроса. [1,2,3,4,5], и я хотел бы, чтобы массив4 содержал все 5 вопросов и т. Д.
Я знаю, что синтаксис внутри цикла foreach неверен, но это мой вопрос к вам, как бы я мог пойти об этом?
Глядя на то, что вы сделали, это выглядит правильно, хотя и немного многословным. Какие проблемы/ошибки вы получаете? –
Вы вызываете 'mysql_fetch_assoc()' только один раз? Если ожидается, что запрос вернет несколько строк, вам нужно будет вызвать его в цикле 'while'. Также имейте в виду, что функции 'mysql _ *()' устарели давно и больше не доступны по умолчанию в последних версиях PHP. mysqli или PDO являются подходящими заменами. –
Он вызывается внутри цикла while, в соответствии с ** EDIT **. – Kieran