0

このループが機能しないのはなぜですか? 配列tableslidersで確認すると echo vardump($tablesliders); 、クエリの最後の要素である1つの要素のみが挿入されています。クエリは正しいです。

while($row_Slider=mysql_fetch_array($Query_Sliders)){   
    $QuestionID=$row_Slider['QuestionIDFK'] ;
    $AnswerID=$row_Slider['AnswerIDPK'] ;
    $AnswerValue=$row_Slider['AnswerValue'] ;
    $tablesliders = array (
            "QuestionID"  => array($k => $QuestionID),
            "$AnswerID" => array($k => $AnswerID),
            "$AnswerValue"   => array($k => $AnswerValue)
             );
        $k=k+1;
}

foreachloopを使用してコードを書き直すにはどうすればよいですか? mysql_fetch_array($Query_Sliders)構文では実行できないため、非常に疲れています。

4

4 に答える 4

7

各ループで$tablesliders変数をリセットしています。

配列にして、ループごとにインクリメントしてみてください。

$tablesliders = array();

while($row_Slider=mysql_fetch_array($Query_Sliders)){
    $QuestionID=$row_Slider['QuestionIDFK'] ;
    $AnswerID=$row_Slider['AnswerIDPK'] ;
    $AnswerValue=$row_Slider['AnswerValue'] ;

    $tablesliders[] = array (
        "QuestionID"  => array([$k] => $QuestionID),
        "$AnswerID" => array([$k] => $AnswerID),
        "$AnswerValue"   => array([$k] => $AnswerValue)
    );
    $k=k+1;
}

実際にスクリプトを見ていますが、それがどのように機能するかは想像できません(各配列には、すべての配列ではなく、1つの質問、回答、値しかありません)。

于 2012-12-17T10:01:19.690 に答える
0

反復ごとに上書きしているので、追加する必要があります。

$tablesliders[] = array (

[]配列に追加します。を使用することもできますarray_push()

于 2012-12-17T10:01:50.580 に答える
0

次のように、配列内の各要素をプッシュします。

$tablesliders = array();

while($row_Slider=mysql_fetch_array($Query_Sliders)){

    $QuestionID=$row_Slider['QuestionIDFK'] ;
    $AnswerID=$row_Slider['AnswerIDPK'] ;
    $AnswerValue=$row_Slider['AnswerValue'] ;

        $tablesliders[] = array (
        "QuestionID"  => $QuestionID,
        "AnswerID" => $AnswerID,
        "AnswerValue"   => $AnswerValue
                 );
        $k=k+1;
}

それはあなたがあなたのキーと値がどうあるべきかについていくつかの仮定をしている。

于 2012-12-17T10:03:37.860 に答える
0

これがあなたが探しているものかどうかわかりません。何$kに使用されているのかわかりません。しかし、これは foreach を使用して配列を構築する方法です。

foreach($row_Slider as $key => $value){
    array_push($tablesliders, $key => $value);
}
print_r($tablesliders);
//should print 
/* ARRAY( 'QuestionIDFK' => 'value',
          'AnswerIDPK' => 'value',
          'AnswerValues => 'value'
        );

しかし、明らかに、これは各エントリを配列に入力します。

于 2012-12-17T10:08:09.773 に答える