Save data from array

Asked

Viewed 110 times

0

Is there a more simplified method for this, or is this the right one? There are some tables that I have several fields and there is a little more work. My question is whether I have to declare all variables to then move to the array or is there some other way to simplify?

<?php
require '../../vendor/autoload.php';
use App\Controllers\Controller\Create;
$Create = new Create;
$campo = filter_input_array(INPUT_POST, FILTER_DEFAULT);

$prodOperadora = $campo['produtoOperadora'];
$prodGB = $campo['produtoGB'];
$prodPreco = $campo['produtoPreco'];
$prodPConv = $campo['produtoPrecoConv'];
$prodDesc = $campo['produtoDesc'];
$prodOferta = $campo['produtoOferta'];
$prodStatus = $campo['produtoStatus'];

$Dados = array(
    'produtoOperadora' => $prodOperadora,
    'produtoGB' => $prodGB,
    'produtoPreco' => $prodPreco,
    'produtoPrecoConv' => $prodPConv,
    'produtoDesc' => $prodDesc,
    'produtoOferta' => $prodOferta,
    'produtoStatus' => $prodStatus
);

if($Create->getSyntax('tb_produto', $Dados)):
    echo '<div class="alert alert-success alert-dismissible fade show p-3">
            <i class="fa fa-bullhorn"></i>&nbsp;&nbsp; <strong>Produto</strong> cadastrado com sucesso!
          </div>
    ';
else:
    echo '<div class="alert alert-danger alert-dismissible fade show p-3">
            <i class="fa fa-bullhorn"></i>&nbsp;&nbsp; <strong>Erro</strong> ao cadastrar no banco!
          </div>
    ';
endif;
  • 5

    Calm down, you pass data from an array to variables and then variables to an array? Why no longer use the original array, without defining variables?

  • In simple entries, you can put the name in the fields of the registration form with the same name that is in the database.

2 answers

1


There are two ways I see to do this:

$dados = [];
foreach ($campo as $key => $value) {
    $dados[$key] => $value;
 }

or

$dados = [
    'prodOperadora' => $campo['produtoOperadora'],
    'prodPreco' => $campo['produtoPreco'],
    // e assim por diante
];

0

To simplify your code, you can do this:

<?php 
require '../../vendor/autoload.php';
use App\Controllers\Controller\Create;
$Create = new Create; $campo = filter_input_array(INPUT_POST, FILTER_DEFAULT);
if($Create->getSyntax('tb_produto', $campo)):
    echo '<div class="alert alert-success alert-dismissible fade show p-3"> <i class="fa fa-bullhorn"></i>&nbsp;&nbsp; <strong>Produto</strong> cadastrado com sucesso! </div> ';
else: 
    echo '<div class="alert alert-danger alert-dismissible fade show p-3"> <i class="fa fa-bullhorn"></i>&nbsp;&nbsp; <strong>Erro</strong> ao cadastrar no banco! </div> ';
endif;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.