0

为什么这个循环不起作用?当我检查 echo vardump($tablesliders); 数组表滑块时,只插入了一个元素,即查询的最后一个元素。查询是正确的。

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

foreach我如何使用循环重写代码?我对此感到非常厌倦,因为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;
}

尽管实际上在查看您的脚本,但我无法想象您希望它如何工作(每个数组只有一个问题、答案和值,而不是所有这些的数组)。

于 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 回答