получить данные из двух таблиц - PullRequest
0 голосов
/ 22 ноября 2018

первая таблица: вопрос вторая таблица: ответ я использую их для экзамена.на каждый вопрос у меня есть 3 ответа.Моя проблема состоит в том, чтобы собрать их вместе, и после выборки я хочу иметь массив, подобный этому:

[0]=>array(8) 
{
    ["question"]=>  string(13) "question test"
    ["name_id"]=>   string(1) "1"
    ["answer"]=>    string(1) "1"
    ["points"]=>    string(1) "1"
    ["answer"]=>    string(1) "2"
    ["points"]=>    string(1) "2"
    ["answer"]=>    string(1) "3"
    ["points"]=>    string(1) "3"
}

, но, поскольку ключевой ответ и точки совпадают, я получаю это после выборки:

[0]=>array(4) 
{
    ["question"]=>  string(13) "question test"
    ["name_id"]=>   string(1) "1"
    ["answer"]=>    string(1) "1"
    ["points"]=>    string(1) "1"
}   
[1]=>array(4) 
{
    ["question"]=>  string(13) "question test"
    ["name_id"]=>   string(1) "1"
    ["answer"]=>    string(1) "2"
    ["points"]=>    string(1) "2"
}   
[2]=>array(4) 
{
    ["question"]=>  string(13) "question test"
    ["name_id"]=>   string(1) "1"
    ["answer"]=>    string(1) "3"
    ["points"]=>    string(1) "3"
}

запрос, который я пишу:

select question , name_id , answer, points from question , answer where question.id_question = answer.id_aquestion

Есть ли какое-либо решение получить их в один массив, а не 3 массива?(рамки я использую codeigniter)

1 Ответ

0 голосов
/ 22 ноября 2018

вы не можете иметь одно и то же имя ключа с разными значениями в первую очередь.он просто перезапишет значение ... вот что вы могли бы сделать:

foreach ($results as $rowKey => $rowVal) {
    $processedResults[0] = [
        "question" => $rowVal["question"],
        "name_id" => $rowVal["name_id"],
        "answer" . $rowKey => $rowVal["answer"],
        "points" . $rowKey => $rowVal["points"]
    ];
}

таким образом вы получите

[0]=>array(x) 
{
    ["question"] => string(13) "question test"
    ["name_id"] => string(1) "1"
    ["answer0"] => string(1) "1"
    ["points0"] => string(1) "1"
    ["answer1"] => string(1) "2"
    ["points1"] => string(1) "2"
    ["answer2"] => string(1) "3"
    ["points2"] => string(1) "3"
    ....
    ["answerx"] => string(1) "x"
    ["pointsx"] => string(1) "x"
}

надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...