[PHP] Array di array - PDO

mDesk

Nuovo Utente
23 Dic 2018
2
0
1
Ciao,

nel mio database ho tre entità (TEST, DOMANDA, RISPOSTA); vorrei realizzare un array di array per ricavarmi le risposte delle domande del relativo test. Ad esempio

[

'id'=> 1

'domanda',

'risposte'=> [

'id' => 0,

'riposta'=> 'Risposta

]

]

database.png


PHP:
$sql= "SELECT * FROM test T WHERE T.nomeTest = :id";
    $stm = $this->conn->prepare($sql);

    $stm->execute([
    'id'=> $test_id
    ]);

    if($stm){

        $result = $stm->fetch(PDO::FETCH_OBJ);
    }

    $Test=[
      'test'=>[
        'test_id'=>$result->nomeTest,
        'testo'=>$result->testo
      ]
    ];
    $sql= "SELECT * FROM domanda D NATURAL JOIN risposta R WHERE D.nomeTest = :testID AND R.domanda_id = D.domanda_id";
    $stm = $this->conn->prepare($sql);

    $stm->execute([
    'testID'=> $test_id,
    ]);
    while ($row = $stm->fetch(PDO::FETCH_NUM)) {
            
            if($row["domanda_id"])
                var_dump($row);

    }

come posso continuare?

grazie
 
Perchè così? Non sarebbe meglio prendere la risposta solo dall'id domanda senza join?

PHP:
$sql= "SELECT * FROM domanda D WHERE D.nomeTest = :id";
    $stm = $this->conn->prepare($sql);
    $stm->execute([
    'id'=> $test_id
    ]);
    $key=0;
    while ($resultD = $stm->fetch(PDO::FETCH_OBJ)) {
     
     
   
        $sqlR= "SELECT * FROM risposta R WHERE R.domanda_id = :id";
        $stmR = $this->conn->prepare($sqlR);
        $stmR->execute([
        'id'=> $resultD->domanda_id
        ]);
         
            $resultR = $stmR->fetchAll(PDO::FETCH_OBJ);
         
            $domande[$key]=[
        'domanda'=>[
          'domanda_id'=>$resultD->domanda_id,
          'domanda'=>$resultD->domanda,
          'risposta'=>[
            'risposta_id'=>$resultR->risposta_id,
            'risposta'=>$resultR->risposta,
            'corretta'=>$resultR->corretta
          ]
        ]
      ];
   
   
$key++;
    }

fare una cosa del genere? vorrei avere un array con tutte le domande e le relative risposte del TEST
 
Ultima modifica:

Discussioni simili