0

質問 ID (q_ID) と回答 (a_answer) を含む mysql テーブルがあります。このデータを使用して、後でドキュメントの一部の html に入力したいと考えています。一部のデータは「|」で区切られています スイッチを使用してフィルタリングしたい。キーによるデータへのアクセスに問題があります。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;

};
};

編集: 1 次元配列を作成するには、次の操作を行います。

$x[$q] = $a;

while ループでそれを行う必要があり、while ループの前に $x 配列を宣言します。

于 2013-07-02T22:03:53.387 に答える