PHP - Создание DIV в зависимости от полей базы данных - PullRequest
0 голосов
/ 15 мая 2019

У меня есть две таблицы в моей базе данных. Одна таблица определяет мои категории, а другая таблица содержит мои записи. На моем выходе я хотел бы показать свои записи в правильной категории

ТАБЛИЦА 1:

+----+-------+------------------+
| id | name  | source_system_id |
+----+-------+------------------+
|  1 | Cat 1 |                1 |
|  2 | Cat 2 |                1 |
|  3 | Cat 3 |                1 |
|  4 | Cat 4 |                1 |
+----+-------+------------------+

ТАБЛИЦА 2:

+---------+---------+------+----------+--------+
| SEGMENT |  FIELD  | LENG | DATATYPE | REF_ID |
+---------+---------+------+----------+--------+
| Entry 1 | Field 1 |   12 | VARCHAR  |      1 |
| Entry 2 | Field 2 |   15 | VARCHAR  |      1 |
| Entry 3 | Field 3 |   18 | VARCHAR  |      3 |
| Entry 4 | Field 4 |   18 | VARCHAR  |      4 |
+---------+---------+------+----------+--------+

Вывод должен выглядеть так:

+---------+-------+---------+---------+
|  Cat 1  | Cat 2 |  Cat 3  |  Cat 4  |
+---------+-------+---------+---------+
| Entry 1 |       |         |         |
| Entry 2 |       |         |         |
|         |       | Entry 3 |         |
|         |       |         | Entry 4 |
+---------+-------+---------+---------+

Таким образом, id из таблицы 1 и ref_id из таблицы 2 относятся друг к другу. Я не могу сделать оператор JOIN, потому что таблица два - это просто временная таблица. В любом случае я пытаюсь получить все данные, которые работают, а затем я хочу отобразить их, как вы можете видеть выше. Вот мой код:

if(mysqli_num_rows($sqlCheckReference) > 0) {

    $getAllSAPModules = $db_conn->getRows('dwh_metamasterdata','global_source_modules',array('where'=>array('source_system_id'=>1),'return_type'=>'all'));

    if(!empty($getAllSAPModules)) {
    print "<div class='row'>";
        foreach ($getAllSAPModules as $sortedModule) {
            print "<div class='col-md-2 col-xs-12 col-lg-2'>";
                print "".$sortedModule["name"]."";
                while ($res = mysqli_fetch_array($sqlCheckReference)) {
                    if ($res["REF_ID"]==$sortedModule["id"]) {
                        print "<tr>";
                            print "<td>".$res["SEGMENT"]."</td>";
                        print "</tr>";
                    }
                }
            print "</div'>";
        }
    print "</div>";
    }

}

Я получаю всю информацию из своих таблиц, пока это работает, но мой код кажется неправильным, потому что записи не отображаются, в зависимости от их REF_ID=id

Может кто-нибудь помочь мне, что я здесь делаю неправильно?

EDIT: Как и было запрошено, мой вывод var_dump из $getAllSAPModules:

array(6) {
  [0]=>
  array(6) {
    ["id"]=>
    string(1) "1"
    [0]=>
    string(1) "1"
    ["name"]=>
    string(22) "Cat 1"
    [1]=>
    string(22) "Cat 1"
    ["source_system_id"]=>
    string(1) "1"
    [2]=>
    string(1) "1"
  }
  [1]=>
  array(6) {
    ["id"]=>
    string(1) "2"
    [0]=>
    string(1) "2"
    ["name"]=>
    string(23) "Cat 2"
    [1]=>
    string(23) "Cat 2"
    ["source_system_id"]=>
    string(1) "1"
    [2]=>
    string(1) "1"
  }
  [2]=>
  array(6) {
    ["id"]=>
    string(1) "3"
    [0]=>
    string(1) "3"
    ["name"]=>
    string(19) "Cat 3"
    [1]=>
    string(19) "Cat 3"
    ["source_system_id"]=>
    string(1) "1"
    [2]=>
    string(1) "1"
  }
  [3]=>
  array(6) {
    ["id"]=>
    string(1) "4"
    [0]=>
    string(1) "4"
    ["name"]=>
    string(18) "Cat 4"
    [1]=>
    string(18) "Cat 4"
    ["source_system_id"]=>
    string(1) "1"
    [2]=>
    string(1) "1"
  }

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