AnswerBun.com

Salvar um array vindo do formulario no banco de dados

Stack Overflow em Português Asked by Pablo Pereira on December 8, 2020

Já tentei de varias formas salvar os dados que vem no formulário no banco de dados mas não esta dando certo, quando utilizava o PHP5 funcionava mas agora convertendo para PHP7 parou de funcionar, alguém pode me ajudar.

O formulario de Cadastro:

<?php
if (!isset($seguranca)) {
    exit;
}
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);

$result_paciente = "SELECT * FROM pacientes WHERE id = '$id'";
$resultado_paciente = mysqli_query($conn , $result_paciente);

?>
<div class="well conteudo">

 <div class="container" style="background-color:#efefef">
  <center><h2>Receituario</h2></center>
   <?php while($row_paciente = mysqli_fetch_assoc($resultado_paciente)){?>
    <table class="table">
      <tr>
          <td>
            <label>Paciente</label>
              <td class="text-left" class="form-control" name="paciente"><?php echo $row_paciente["nome_paciente"]; ?></td>
          </td>
          <td>
            <label>Profissional</label>
          <td class="text-left" class="form-control" name="user"> <?php echo $_SESSION['nome'];?> </td>
            <?php } ?>      
          </td>
      </tr>
    </table>

     <form action="<?php echo pg; ?>/processa/proc_cad_receitas" method="POST" class="form-horizontal">
    <hr style="border:1px dashed black">
    <table class="table table-hover">
      <thead>
        <tr>
          <th>Medicamento</th>
          <th>Qtd Comprar</th>
          <th>Qtd Tomar</th>
          <th>Intervalo</th>
          <th>Nº Dias</th>
          <th><input type="button"  class="btn btn-primary add" value="+"></th>
        </tr>
      </thead>
      <tbody class="details">
          <tr>
               <td><select type="text" name="med[]" class="form-control med"> <option value=""></option>
              <?php
                $result_medicamento = "SELECT M.medicacao_id, M.comercial, V.nome_via, A.nome_apre
                                              FROM tbl_drugs_medicacao AS M
                                              INNER JOIN tbl_drugs_vias_cadastradas AS V
                                              ON M.via_id = V.id_via
                                              INNER JOIN tbl_drugs_apresentacao AS A
                                              ON M.apresentacao_id = A.id_apre
                                              ORDER BY comercial";
                $resultado_medicamento = mysqli_query($conn, $result_medicamento);
                while($row_medicamento = mysqli_fetch_assoc($resultado_medicamento) ) {
                  echo '<option value="'.$row_medicamento['medicacao_id'].'">'.$row_medicamento['comercial'].'-|-'.$row_medicamento['nome_via'].'-|-'.$row_medicamento['nome_apre'].'</option>';
                  }
              ?>
              </select></td>
               <td><input type="text" name="compra[]" class="form-control compra"></td>
               <td><input type="text" name="tomar[]" class="form-control tomar"></td>
               <td><select type="text" name="inter[]" class="form-control inter"><option value=""></option>
                <?php
                  $result_intervalo = "SELECT * FROM tbl_drugs_intervalo";
                  $resultado_intervalo = mysqli_query($conn, $result_intervalo);
                  while($row_intervalo = mysqli_fetch_assoc($resultado_intervalo) ) {
                    echo '<option value="'.$row_intervalo['id_inter'].'">'.$row_intervalo['nome_inter'].'</option>';
                  }
                ?>
              </select></td>
               <td><select type="text" name="day[]" class="form-control day"><option value=""></option>
                <?php
                $result_dia = "SELECT * FROM tbl_drugs_dias";
                $resultado_dia = mysqli_query($conn, $result_dia);
                while($row_dia = mysqli_fetch_assoc($resultado_dia)){
                  echo '<option value="'.$row_dia['id_dias'].'">'.$row_dia['nome_dias'].'</option>';
                  }
                ?>
              </select></td>
               <td><input type="button"  class="btn btn-danger remove" value="Remover"></td>
          </tr>
      </tbody>
      <tfoot>
        <tr>   
            <td></td>
            <td></td>
            <td></td>
            <td></td> 
            <td></td> 
            <td></td> 
            <td>

            <input type="submit" class="btn btn-success" name="Sendreceitas" value="Salvar">
          </td>
        </tr>
      </tfoot>
    </table>
  </form>
 </div>

</body>
</html>


<script type="text/javascript">


    $(function(){


    // add new row 
    $('.add').click(function(){
      var tr = '<tr>'+
                   '<td><select type="text" name="med[]" class="form-control med"> <option value=""></option><?php
                $result_medicamento = "SELECT M.medicacao_id, M.comercial, V.nome_via, A.nome_apre
                                              FROM tbl_drugs_medicacao AS M
                                              INNER JOIN tbl_drugs_vias_cadastradas AS V
                                              ON M.via_id = V.id_via
                                              INNER JOIN tbl_drugs_apresentacao AS A
                                              ON M.apresentacao_id = A.id_apre
                                              ORDER BY comercial";
                $resultado_medicamento = mysqli_query($conn, $result_medicamento);
                while($row_medicamento = mysqli_fetch_assoc($resultado_medicamento) ) {
                  echo '<option value="'.$row_medicamento['medicacao_id'].'">'.$row_medicamento['comercial'].'-|-'.$row_medicamento['nome_via'].'-|-'.$row_medicamento['nome_apre'].'</option>';
                  }
              ?></select></td>'+
                   '<td><input type="text" name="compra[]" class="form-control compra"></td>'+
                   '<td><input type="text" name="tomar[]" class="form-control tomar"></td>'+
                   '<td><select type="text" name="inter[]" class="form-control inter"><option value=""></option>                <?php
                  $result_intervalo = "SELECT * FROM tbl_drugs_intervalo";
                  $resultado_intervalo = mysqli_query($conn, $result_intervalo);
                  while($row_intervalo = mysqli_fetch_assoc($resultado_intervalo) ) {
                    echo '<option value="'.$row_intervalo['id_inter'].'">'.$row_intervalo['nome_inter'].'</option>';
                  }
                ?></select></td>'+
                   '<td><select type="text" name="day[]" class="form-control day"><option value=""></option>               <?php
                $result_dia = "SELECT * FROM tbl_drugs_dias";
                $resultado_dia = mysqli_query($conn, $result_dia);
                while($row_dia = mysqli_fetch_assoc($resultado_dia)){
                  echo '<option value="'.$row_dia['id_dias'].'">'.$row_dia['nome_dias'].'</option>';
                  }
                ?></select></td>'+
                   '<td><input type="button"  class="btn btn-danger remove" value="Remover"></td>'+
              '</tr>';
      $('.details').append(tr);
    });
    // end 

     // delete row 
    $('.details').delegate('.remove','click',function(){
        var con = confirm("Deseja Realmente Excluir esse medicamento ?");
        if(con)
        {
          $(this).parent().parent().remove();
          total();
        }

    });
    // end 

  });
</script>


    </div>


Formulario Antigo do PHP 5 

<?php
  session_start();

  $id_prof = $_SESSION['usuarioId'];
  include_once("../../../../conexao/conexao.php");
?>

<?php
    $id = $_SESSION['paciente_receita'];
    $result_paciente = "SELECT * FROM tbl_pacientes WHERE id = '$id'";
    $resultado_paciente = mysqli_query($conn , $result_paciente);
    $id_receita = $_SESSION['receitas_emitir'];
 ?>

<?php 

        if(isset($_POST['order']))
          {   
            if($id > 0)
              {
                for($i=0;$i<count($_POST['med']);$i++)
                  {
        $med      = mysqli_real_escape_string($conn, $_POST['med'][$i]);
        $compra   = mysqli_real_escape_string($conn, $_POST['compra'][$i]);
        $toma     = mysqli_real_escape_string($conn, $_POST['tomar'][$i]);
        $inter    = mysqli_real_escape_string($conn, $_POST['inter'][$i]);
        $dias     = mysqli_real_escape_string($conn, $_POST['day'][$i]);

$result_itens = "INSERT INTO tbl_pacientes_receitas_itens(presc_id, med_id, compra, toma, inter_id, dias_id, criado) VALUES ('$id_receita', '$med', '$compra', '$toma', '$inter', $dias, NOW())";
  $resultado_itens = mysqli_query($conn, $result_itens);  

                  }
              }
          }
?>

<!DOCTYPE html>
<html lang="pt-BR">
    <head>
        <meta charset="utf-8">
    </head>

    <body>
        <?php
            if(mysqli_affected_rows($conn) != 0){
                header('location: http://localhost/clinica/adm/adm.php?link=41&id='.$id);  
                    }
                        unset($_SESSION["receitas_emitir"]); 
        ?>
    </body>
</html>
<?php $conn->close(); ?>

Tentei usar esse código mas não da certo de jeito nenhum, fala que não posso acessar o POST diretamente.
Nem receber os dados estou conseguindo.

<?php

if (!isset($seguranca)) {
    exit;
}
$id = $_SESSION['id_pac'];

$prontuario_id = $_SESSION['prontuario'];

$result_paciente = "SELECT * FROM pacientes WHERE id = '$id'";
$resultado_paciente = mysqli_query($conn, $result_paciente);
$row_paciente = mysqli_fetch_assoc($resultado_paciente);

$receita = filter_input_array(INPUT_POST, FILTER_DEFAULT);

echo $receita['med'];
echo $receita['compra'];
echo $receita['tomar'];
echo $receita['inter'];
echo $receita['day'];
?>

One Answer

faz tempo que não programo em php mas uma ideia seria fazer um FOR para cada request e salvar dentro do array, e da mesma forma pode usar para exibir. ex:

 <?php
    $results = array
      (
      array("Marcos","ritalina","18","2"),
      array("Julia","ibuprofeno","30","1"),
      array("Marcelo","alprazolam ","06","4"),
      array("Antonia","clonazepam ","02","2"),
      );


    for ($i = 0; $i < 4; $i++) {
        $j = 0;
        print_r('Paciente: '.$results[$i][$j].'. medicamento: '.$results[$i][$j+=1].'. dose(mg): '.$results[$i][$j+=1].'. vezes ao dia: '.$results[$i][$j+=1].'.' );
        echo '<br>';
    }
?>

Answered by Bananaz on December 8, 2020

Add your own answers!

Related Questions

Converter data com timezone

4  Asked on December 11, 2021 by dudisroyer

     

Objeto não é atualizado

1  Asked on December 11, 2021

     

Entendimento sobre MVC

2  Asked on December 11, 2021 by carlos-rocha

     

Devo alimentar meu site pela API ou não?

1  Asked on December 11, 2021 by spacedogcs

     

Como pegar o nome de uma variável dentro de um método?

1  Asked on December 11, 2021 by pedro-martins

   

Label não atualiza através do setText no JavaFX

1  Asked on December 11, 2021 by filipe

     

Como usar o Enum.Parse()?

2  Asked on December 11, 2021 by thulio-mariano

     

Problema consultas avançadas MYSQL

2  Asked on December 11, 2021 by inovaarte-tecnologia

   

Laravel 6 escapando html blade template

2  Asked on December 11, 2021 by fernandosales

       

Ajuda com dados do PDO em PHP!

1  Asked on December 11, 2021 by marco-lustosa

     

Como definir um padrão de exibição de casas decimais no R?

1  Asked on December 11, 2021 by rtheodoro

   

Quebra de linhas

1  Asked on December 11, 2021 by vanderclin-rocha

       

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir