Olá
Estou com um problema ao inserir numa tabela relacional um array...
Código :
Código :
Quero passar o lastInsertId(); e mais duas variaveis para esta função
Código :
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 :
Nesta que me está a dar errado
Código :
alguma dica?
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çãoforeach ($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);
}
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();
}
$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
------- ------------- --------- --------
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
------------- --------- -------------
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?