Как создать и получить доступ к сложному объекту в php - PullRequest
1 голос
/ 12 февраля 2020

У меня есть 2 mysql таблицы, которые выглядят следующим образом:

users:         usr   fname   lname   email   news   wres   SWAGLeaders
campaigns:     usr   subject   value

таблицы связаны через usr. Для каждой кампании usr содержится 4 различных предмета (очистка, газ, cca и опылители).

Я выполняю базовые c запросы к базе данных:

$users = query("select * from users");
$camps = query("select distinct usr from campaigns");

каждый пользователь в $ camp будет также может быть в $ users, но каждый usr в $ users может не входить в $ camp. И $ camp, и $ users отсортированы в порядке возрастания usr.

Я хочу построить полностью независимый объект, имеющий следующую форму:

{
    abc@gmail.com:[
        usr:130, 
        fname:'bob', 
        lname:'henry', 
        news:1, 
        wres:1, 
        SWAGLeader:1, 
        cleanup:1, 
        gas:0, 
        cca:0, 
        pollinators:1
} 

Я начинаю следующим образом:

$icnt = count($users);
$ccnt = count($camp);
$all = [];
for($int i = 0;$i<$cnt;$i++){
     $obj = new stdClass();
     $obj->{$user[i]['email']}=['usr'=>$user[0]['usr']];
     $iusr = $user[i]['usr'];

    // so at this point I have the the start of my first obj
    // how do I add in usr,fname,lanme,news,wres and SWAGLeaders into the array?

     for($k= 0;$k <6;$k++){
         ???????
     }

     for($j=0;$j<$ccnt;$j++){
        $cusr = $camp[$j]['usr'];
        if($cusr === $iusr){
            $usrCamp = query("select * from camp where usr = ?",$cusr);

            //so now I need to add in the 4 campaigns with values from $usrCamp
           for($k=0;$k<4;$k++){
                ????
           }
        }else{
            // and here I need to add in the 4 campaigns with no data (nulls)
            for($k=0;$k<4;$k++){
                ????
            }
        }
    }

      array_push($obj,$all);
}

Наконец, во вложенном l oop, как мне получить доступ к каждому элементу в $ all, в основном для каждого адреса электронной почты, как мне получить доступ к элементам в массиве? Как назначить их другим переменным по значению (не по ссылке)

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