I can not insert into related tables

0

I'm in trouble. I normally enter in the table "equipment" of my code and populate normally the BD mysql.

However, the "dell" table is empty even though it passes the ID reference from the "equipment" table. By phpmyadmin everything is working normally, if I insert it there it works, but I have to do it via PHP in mysqli.

"equipment" is independent and "dell" is a dependent table with FK_item which is auto_increment

Help !!!

<?php
//tabela dell
$fabricante=$_POST['fabricante'];
$modelo=$_POST['modelo'];
$tipo=$_POST['tipo'];
$data=date("Y/m/d");
$url=$_POST['url'];
$serie=$_POST['serie'];
$proprietario=$_POST['proprietario'];
$origem=$_POST['origem'];
$venc_garantia=date("Y/m/d");
$tipo_instalacao=$_POST['tipo_instalacao'];
$configuracao=$_POST['configuracao'];
$uname_a=$_POST['uname_a'];
$instalacao=$_POST['instalacao'];
$status=$_POST['status'];
$servicos=$_POST['servicos'];

//tabela equipamento
$descricao=$_POST['descricao'];
$quantidade=$_POST['quantidade'];
$tombamento=$_POST['tombamento'];
$local=$_POST['local'];

//tabela equipamento
$query = "INSERT INTO equipamento (item, tipo, descricao, quantidade, tombamento, local, status)
VALUES(NULL, '$tipo', '$descricao', '$quantidade', '$tombamento', '$local','$status')";

$mysqli->query($query);
printf ("Registro de id %d.\n", $mysqli->insert_id);
//tabela dell
$query2 = "INSERT INTO dell (id_item, fabricante, modelo, tipo, data, url, serie, proprietario, origem, venc_garantia, tipo_instalacao,
configuracao, uname_a, instalacao, servicos, tombamento) VALUES(LAST_INSERT_ID(), '$fabricante', '$modelo', 
'$tipo', '$data', '$url', '$serie', '$proprietario', '$origem', '$venc_garantia', '$tipo_instalacao', '$configuracao', 
'$uname_a', '$instalacao', '$status', '$servicos', '$tombamento')";
$mysqli->query($query2);
printf("Novo Registro foi inserido com sucesso\n"); 
printf ("Registro de id %d.\n", $mysqli->insert_id);
?>
    
asked by anonymous 24.07.2014 / 18:51

2 answers

0
$query2 = "INSERT INTO dell (id_item, fabricante, modelo, tipo, data, url, serie,      proprietario, origem, venc_garantia, tipo_instalacao,
configuracao, uname_a, instalacao, servicos, tombamento) VALUES(LAST_INSERT_ID(),     '$fabricante', '$modelo', 
'$tipo', '$data', '$url', '$serie', '$proprietario', '$origem', '$venc_garantia',     '$tipo_instalacao', '$configuracao', 
'$uname_a', '$instalacao', '$status', '$servicos', '$tombamento')";

In this second your QUERY in the fields to insert has a field that is not mapped which is STATUS.

Check what is probably the reason.

Replace with this:

$query2 = "INSERT INTO dell (id_item, fabricante, modelo, tipo, data, url, serie,      proprietario, origem, venc_garantia, tipo_instalacao,
configuracao, uname_a, instalacao, status, servicos, tombamento) VALUES(LAST_INSERT_ID(),     '$fabricante', '$modelo', 
'$tipo', '$data', '$url', '$serie', '$proprietario', '$origem', '$venc_garantia',     '$tipo_instalacao', '$configuracao', 
'$uname_a', '$instalacao', '$status', '$servicos', '$tombamento')";
    
24.07.2014 / 19:00
0

In INSERT INTO dell ... I noticed that you are entering 17 values in 16 fields. The number of fields must exactly match the number of values passed in VALUES . This may be the reason for the problem.

I believe you have forgotten the STATUS field (note that it is in the VALUES but is not in the field list of the table).

Try this:

$query2 = "INSERT INTO dell (id_item, fabricante, modelo, tipo, data, url, serie, proprietario, origem, venc_garantia, tipo_instalacao,
configuracao, uname_a, instalacao, status, servicos, tombamento) VALUES(LAST_INSERT_ID(), '$fabricante', '$modelo', 
'$tipo', '$data', '$url', '$serie', '$proprietario', '$origem', '$venc_garantia', '$tipo_instalacao', '$configuracao', 
'$uname_a', '$instalacao', '$status', '$servicos', '$tombamento')";
    
24.07.2014 / 18:58