2013-07-02 2 views
0

У меня есть таблица mysql с идентификаторами вопросов (q_ID) и ответы (a_answer). Я хочу использовать эти данные для заполнения некоторого 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 $x[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; 

Вы должны сделать это в то время цикла и до сих пор объявите массив $ x перед циклом while.

+0

, который работает, но возвращает в массиве с массивом. Я надеялся избежать этого. print_r равно 0] => Массив ( [4] => 8 ) [1] => Массив ( [5] => 6 ) [2] => Массив ( [6 ] => мужской ) [3] => массив ( [7] => 77777 ) –

+0

Ну, как еще вы собираетесь хранить несколько строк данных в переменной, если вы не используете массив ? Вам нужно что-то сделать. Вы можете создать одномерный массив, если хотите. – HartleySan

+0

как бы создать одномерное? –

Смежные вопросы