0
I’m taking data from an XML, converting to array
and entering into the database. But I need only results that do not yet exist.
It follows below my code, I have tried several other ways, none with a good result. In the code below always falls in the já tem no banco
even though there is no such result.
foreach ($dados as $grupo) {//mostra os grupos existentes
foreach ($grupo as $subgrupo) {//mostra cada subgrupo
$ci->db->trans_start();
if (!$ci->db->select('nome')->from('tipo_produto')->where('nome', $subgrupo->attributes()->SubGrupo)) {
$arraysubgrupos = array(
'nome' => "" . $subgrupo->attributes()->SubGrupo . "",
);
$ci->Cadastros_model->incluir('tipo_produto', $arraysubgrupos);
$id_produto = mysql_insert_id();
echo "ok";
} else {
echo "ja tem no banco";
}
$ci->db->trans_complete();
$arraygrupos = array(
'nome' => "" . $grupo->attributes()->Grupo . "",
'tipo_id_tipo_produto' => "" . $id_produto . ""
);
//$ci->Cadastros_model->incluir('categoria', $arraygrupos);
$id_grupo = mysql_insert_id();
foreach ($subgrupo as $produto) {//exibi os produtos
if ($produto->attributes()->codigo != "") {
$arrayprodutos = array(
'id_produto' => "" . $produto->attributes()->codigo . "",
'nome' => "" . $produto->attributes()->nome . "",
'descricao' => "" . $produto->attributes()->descricao . "",
'valor' => "" . $produto->attributes()->preco . "",
'tipo_produto_id_tipo' => "" . $id_produto . "",
'categoria_id_categoria' => "" . $id_grupo . ""
);
//$ci->Cadastros_model->incluir('produtos', $arrayprodutos);
}
}
}
}
XML has lines with exactly the same data? Or for example lines with the same product id_and other different information?
– Ricardo
Setting a primary key (or just a single index) in your database table would not easily solve your problem?
– user4552