Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

foreach multiplo

$
0
0
Olá

Estou com um  problema ao inserir numa tabela relacional um array...

Código :
$myArray = explode(',', $id_escola);
                    foreach ($myArray as $id) {
                            print_r($id);
                            $stmt->bindParam(':id_escola', $id, PDO::PARAM_INT);
                            $result = $stmt->execute();
                            $idAtividade = $this->db->lastInsertId();
                            $this->insertByLastId($idAtividade,$id_professor);
                            $this->setDadosEstatisticosAtividades($idAtividade, $id_escola, $dominios);
                    }
Este o array que funciona sem problema, o que me está a dar problema é esta última função
Código :
$this->setDadosEstatisticosAtividades($idAtividade, $id_escola, $dominios);

Quero passar o lastInsertId(); e mais duas variaveis para esta função

Código :
try{
                    $stmt = $this->db->prepare("INSERT INTO `estatistica_atividades` (`id_atividades`,`id_escola`,`id_dominios`)
                                                                            VALUES(:id_atividades,:id_escola,:id_dominios) ;");
                    $escolas = explode(',', $id_escola);
                    $dominio = explode(',', $dominios);
                    foreach ($escolas as $id) {
                            foreach ($dominio as $ids) {
                                    $stmt->bindparam(":id_atividades", $idAtividade);
                                    $stmt->bindParam(':id_escola', $id, PDO::PARAM_INT);
                                    $stmt->bindParam(':id_dominios', $ids, PDO::PARAM_INT);
                                    $result = $stmt->execute();
                            }
                            if (!$result) {
                                   print_r($stmt->errorInfo());
                            }
                    }
            }catch (PDOException $e) {
                    echo $e->getMessage();
            }

Só que em vez de me dar 3 registos.....dá-me 9
Exemplo numa tabela que é gravada ao mesmo tempo e dá-me 3

Código :
id_prof  id_atividades  avaliacao  path  
-------  -------------  ---------  --------
    364                   1               0  0   
    364                   2               0  0   
    364                   3               0  0 

Nesta que me está a dar errado
Código :
id_atividades  id_escola  id_dominios
-------------  ---------  -------------
                    1             1                       1
                    1             2                       1
                    1             3                       1
                    2             1                       1
                    2             2                       1
                    2             3                       1
                    3             1                       1
                    3             2                       1
                    3             3                       1

alguma dica?

Viewing all articles
Browse latest Browse all 14700

Trending Articles