Счетчик L oop не увеличивается должным образом - PullRequest
1 голос
/ 03 февраля 2020

Кажется, у меня проблема с циклами foreach. Я пытаюсь вставить записи в таблицы базы данных, используя циклы foreach, но это не работает правильно. Вместо 3 записей, добавляемых в каждую таблицу, 1 запись добавляется в каждую таблицу. Кроме того, каждая запись, добавляемая в каждую таблицу, должна быть в первой таблице.

Вот данные из таблицы базы данных tableinfo, которую я использую для создания таблиц.

displayname             dbname                   category    distance     distance_id
Male 40 to 49 10KM      M40_Male40to4910KM       M40         10KM         3
Male 40 to 49 21KM      M40_Male40to4921KM       M40         21KM         2
Male 40 to 49 42KM      M40_Male40to4942KM       M40         42KM         1

И вот код, который я пытаюсь заставить работать:

$tabledata = $this->db->get('tableinfo');

$i = 0;
$_temp = array();
foreach($tabledata->result() as $row) {
    $data[$i] = $this->callAPI("lateststandings&records=3&category=" . $row->category . "&distance=" . $row->distance_id);
    array_push($_temp, $row->dbname);
    $i++;
}

$j = 0;
foreach($data[$j]['Records']['Record'] as $record) {
    $record['FirstName'] .= " " . $record['LastName'];
    $this->db->replace($_temp[$j], $record);
    $j++;
}

Я уверен, что у меня проблема с переменными счетчика $ i и $ j, но я не уверен, где я пошло не так. Кажется, что переменные счетчика не увеличиваются правильно.

1 Ответ

1 голос
/ 03 февраля 2020

Давайте попробуем сделать это таким образом

$tabledata = $this->db->get('tableinfo');
$data = [];

$_temp = array();
foreach($tabledata->result() as $row) {
    $data[] = $this->callAPI("lateststandings&records=3&category=" . $row->category . "&distance=" . $row->distance_id);
    array_push($_temp, $row->dbname);
}

foreach($data as $key => $arr) {
    foreach ($arr['Records'] as $record)
    {
        $record['FirstName'] .= " " . $record['LastName'];
        $this->db->replace($_temp[$key], $record);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...