Olá,
Tem pouco tempo que estou mexendo em Php para otimizar algumas tarefas onde trabalho.
Em meu banco de dados tenho 2 tabelas que usarei.
Uma tabela (tabela 1) é composta por: id | cod1 | cod2 | preço
A outra tabela (tabela 2) é composta por: id | cod1 | cod2 | valor | preço
Já revirei bastante a Internet atrás de uma solução mas não consegui concretizar da forma que quero.
Tenho um banco de dados que, a forma na qual insiro dados nele, é através da importação de um arquivo .xlxs (encontrei o código na internet e fiz algumas alterações).
Eu seleciono num formulário os campos cod1 e cod2 e o arquivo .xlxs importado salva o valor.
Precisaria fazer com que ao adicionar estes 3 itens (cod1 | cod2 | valor) na tabela 2, o código já procure pelo cod1 e cod2 na tabela 1, retorne o respectivo preço e salve no campo valor da tabela 2.
O código de importação para a tabela 2 é o seguinte:
<?php
/**
* PHPExcel - Excel data import to MySQL database script example
* ==============================================================================
*
* @version v1.0: PHPExcel_excel_to_mysql_demo.php 2016/03/03
* @copyright Copyright (c) 2016, http://www.ilovephp.net
* @author Sagar Deshmukh <sagarsdeshmukh91@gmail.com>
* @SourceOfPHPExcel https://github.com/PHPOffice/PHPExcel, https://sourceforge.net/projects/phpexcelreader/
* ==============================================================================
*
*/
require 'Classes/PHPExcel/IOFactory.php';
//Chama o arquivo para conectar ao servidor
require '1.1. conexao.php';
$inputfilename = 'example_tabela_2.xlsx';
$exceldata = array();
// Read your Excel workbook
try
{
$inputfiletype = PHPExcel_IOFactory::identify($inputfilename);
$objReader = PHPExcel_IOFactory::createReader($inputfiletype);
$objPHPExcel = $objReader->load($inputfilename);
}
catch(Exception $e)
{
die('Error loading file "'.pathinfo($inputfilename,PATHINFO_BASENAME).'": '.$e->getMessage());
}
// Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$column1 = "cod1"; //nome da 1a coluna
$column2 = "cod2"; //nome da 2a coluna
$column3 = "valor"; //nome da 3a coluna
$column4 = "preço"; //nome da 4a coluna
// RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO !
$cod1 = $_POST ["cod1"]; //atribuição do campo "cod1" vindo do formulário para variavel
$cod2 = $_POST ["cod2"]; //atribuição do campo "cod2" vindo do formulário para variavel
// Loop through each row of the worksheet in turn
for ($row = 3; $row <= $highestRow; $row++) //$row = 3 (a partir de qual linha será feita a importação de dados
{
// Read a row of data into an array
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
// Insert row data array into your database of choice here
$sql = "INSERT INTO $table_est ($column1, $column2, $column3)
VALUES ('".$cod1."',
'".$cod2."',
'".$rowData[0][5]."')";
if (mysqli_query($conexao, $sql)) {
$exceldata[] = $rowData[0];
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conexao);
}
}
// Print excel data
echo "<table>";
foreach ($exceldata as $index => $excelraw)
{
echo "<tr>";
foreach ($excelraw as $excelcolumn)
{
echo "<td>".$excelcolumn."</td>";
}
echo "</tr>";
}
echo "</table>";
mysqli_close($conexao);
?>
Fiz o upload de uma imagem para tentar explicar com mais clareza o que preciso.
Não sei se fui claro, qualquer coisa me perguntem.
Desde já, obrigado.