0

我有一个带有问题 ID (q_ID) 和答案 (a_answer) 的 mysql 表。我想使用这些数据稍后在文档中填充一些 html。部分数据用“|”分隔 我想用 switch 过滤。我无法通过密钥访问数据。它在while循环中工作,但我需要它在外面。

$getData="SELECT a_answer, q_ID FROM answers ";

$result = mysqli_query($connected, $getData);

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

$arAnswer = explode('|', $row['a_answer']);

//catagorize by number of values    
$arrayCount = count($arAnswer);

switch ($arrayCount) 
{ 
case 1: //short data, no separators

//make array for ID and answer
$q = $row['q_ID'];
$a = $arAnswer[0];

$x = array($q=>$a);

break;

}; //END switch
}; //END while

稍后在文档中,echo 不会为 $q 返回 value/$a:

 echo $x[1]

谢谢,

4

1 回答 1

0

看起来问题是您每次通过循环都重新设置 $x 。以下可能是更好的解决方案:

$getData="SELECT a_answer, q_ID FROM answers ";

$result = mysqli_query($connected, $getData);

$x = array();         // Added this.

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

$arAnswer = explode('|', $row['a_answer']);

$arrayCount = count($arAnswer);

switch ($arrayCount) 
{ 
case 1:

$q = $row['q_ID'];
$a = $arAnswer[0];

$x[] = array($q=>$a); // Add [] after $x to push array($q=>$a) 
                      // onto the end of the $x array.
                      // You can also use array_push, but
                      // the technique here is quicker.

break;

};
};

编辑:要创建一维数组,请执行以下操作:

$x[$q] = $a;

您需要在 while 循环中执行此操作,并且仍然在 while 循环之前声明 $x 数组。

于 2013-07-02T22:03:53.387 回答