2017-02-08 6 views
0

複数のアレイに配列の値を代入します使用すると、テーブル形式で、私はクイズを作る過程で、現在午前

| id |  question  | option1 | option2 | option3 | answer | 
-------------------------------------------------------- 
| 1 | What is my name? | Dave | Bob | Charles | Linda | 

私は、ユーザーの答えを検証しようとしていると私はかなりありませんよそれについてどうやって行くのか。私は、foreachループを使って配列値を他の配列に割り当てるのに少し不便です。 matresult.php内の次のコードを間違ったが、それは私が達成しようとしているかを示す必要があります。

matquiz.php以内に私はmatresult.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 
} 

を持っている私は

$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 
} 

何を持っています私は達成しようとしている6つの別々の配列に各$ finalresults配列の値を押して、5つの質問/行のためにこれを行うことです。

たとえば、私はarray3に5つの質問IDすべてを保持したいと思います。 [1,2,3,4,5]と私はarray4のすべての5つの質問などを保持するようにしたい

私はforeachループ内の構文が間違っていることを知っているが、これはあなたに私の質問ですこれを達成しようとしますか?

+0

を少し冗長いえ、それは、正しく見えます。どのような問題やエラーが出ていますか? –

+0

'mysql_fetch_assoc()'を一度呼び出すだけですか?クエリが複数の行を返すと予想される場合は、 'while'ループでそれを呼び出す必要があります。 'mysql _ *()'関数は古くから廃止され、最近のPHP版ではデフォルトでは利用できなくなったことにも注意してください。 mysqliまたはPDOが適しています。 –

+0

** EDIT **のようにwhileループ内で呼び出されます。 – Kieran

答えて

0

まず第一に、mysqli_queryとmysqli_fetch_arrayを使用するべきでしょう。理由は、hereを参照してください。

私はforeachを一切必要としないと思います。whileループでmysqli_fetch_arrayを使用するだけで、別のループは必要ありません。 array_pushについては

は()を呼び出し、次のようなものを書くことができます:

$array3[] = $row['ID']; 

をそして、彼らは同じ効果を持っている、と私はそれがより一般的だと思います。 PHPマニュアルのhereを参照してください。特定のインデックスを配列に代入しないと、PHPは次の利用可能な数値インデックスに割り当てます。

$ finalresultsは何を使用しているのかよく分かりませんが、割り当てようとしているデータの一時的な保持領域として使用していたので、私には分かりません。とにかくあなたのarray3-array8。私は私の例からそれを削除しました。

この例では、同じファイル内のすべて、あなたがする必要がある場合は、それを分割している:あなたがやっていることを見てから

<?php 

$array3 = array(); 
$array4 = array(); 
$array5 = array(); 
$array6 = array(); 
$array7 = array(); 
$array8 = array(); 

$query = "SELECT * FROM MatQuiz";       
$result = mysqli_query($connect, $query); 

while ($row = mysqli_fetch_array($result)) { 

    $array3[] = $row['ID']; 
    $array4[] = $row['question']; 
    $array5[] = $row['option1']; 
    $array6[] = $row['option2']; 
    $array7[] = $row['option3']; 
    $array8[] = $row['answer']; 

} 
+0

理想的!どうもありがとうございました。まだ非常にPHPを使用して新しい。 mysqliを使用するようにコードを更新します。助けをありがとう、ありがとう。 – Kieran

+0

問題はありません。うれしく思います! –

関連する問題