Jump to content
gersonab

[Resolvido] insert de array em pdo, dúvida na data.

Recommended Posts

há tempos utilizo para cadastrar data no BD a instrução :

implode('-',array_reverse(explode('/',$data)))


com isso no input posso colocar 09/02/2019 e no banco de dados grava 2019-02-09 , até ai sem problemas, porém ao atualizar um sistema para pdo, estou com problema no insert dinâmico, onde posso fazer 1 ou mais inserts, da forma abaixo cadastro quantos eu quiser :

$sql = "INSERT INTO cantos ( id_t, id_c, data, ca, cant, po, des) VALUES (:id_t, :id_c, :data, :ca, :cant, :po, :des)"; 
            $stmt = $pdo->prepare($sql);
            foreach($_POST['idp'] as $indice => $valor) {
            $stmt->bindParam(':id_t', $_POST['id_tor'][$indice], PDO::PARAM_STR);
            $stmt->bindParam(':id_c', $_POST['idp'][$indice], PDO::PARAM_STR);
            $stmt->bindParam(':data', $_POST['data'][$indice], PDO::PARAM_STR);
            $stmt->bindParam(':ca', $_POST["ca"][$indice], PDO::PARAM_STR);
            $stmt->bindParam(':cant', $_POST['cant'][$indice], PDO::PARAM_STR);
            $stmt->bindParam(':po', $_POST['po'][$indice], PDO::PARAM_STR);
            $stmt->bindParam(':des', $_POST['des'][$indice], PDO::PARAM_STR);
            
                if ($stmt->execute()){
                    echo "Cadastrado com sucesso.";
            }


no entento a data vai no formato do input 09/02/2019.
caso utilize :

$stmt->bindParam(':data', implode('-',array_reverse(explode('/',$_POST['data'][$indice]))), PDO::PARAM_STR);


tenho o erro Strict standards: "Only variables should be passed by reference in "que significa "Apenas as variáveis podem ser passadas por referência"
qual a melhor forma de se fazer neste caso ?

Share this post


Link to post
Share on other sites

se ela já vem no formato 09/02/2019 dá um explode nela e monta em uma nova variável

foreach($_POST['idp'] as $indice => $valor) {

     $old_date = explode("/",$_POST['data'][$indice]);
     $new_date = $old_date[2]."-".$old_date[1]."-".$old_date[0];

     $stmt->bindParam(':id_t', $_POST['id_tor'][$indice], PDO::PARAM_STR);
     $stmt->bindParam(':id_c', $_POST['idp'][$indice], PDO::PARAM_STR);
     $stmt->bindParam(':data', $new_date, PDO::PARAM_STR);

Share this post


Link to post
Share on other sites

Resolvi tratando as mesmas antes 

foreach($_POST['idp'] as $indice => $valor) {
$st= $_POST['data'][$indice];
$dat01=implode('-',array_reverse(explode('/',$st)));
...
..
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Anderson Ronilson Xavier
      Olá a todos gostaria da ajuda dos colegas estou em um projeto de site landing page  usando o plugin construtor de sites chamado themify ultra e não estou conseguindo uma galeria de imagens igual ao cliente está me pedindo que responsiva e com um menu que tenha as opções por exemplo "todas maçã banana laranja " se eu clicar em maçã a galeria ocultaria as bananas e Laranja e se eu clicar em todas e voltaria a apresentar todas as frutas ... Desculpa o jeito de explicar ... Mas galeria não estou conseguindo achar nada que me ajude a opção do themify ultra foi do próprio cliente que já tinha e acabei topando por fazer usando ele mesmo mas no site do themify não achei nenhum pluguin interessante a galeria deles é a padrão do WordPress será que teria como eu usar alguma outra os colegas tem alguma sugestão? 
       Vou deixar um site que o cliente deixou de modelo de como ele gostaria de que dele ficasse
       
      www.levelmont.com.br
       
      Grato pelo ajuda dos colegas.
       
       
    • By calinthians
      Olá pessoal, estou criando um sistema de portfólios e fiz tudo funcionar sem PHP, quando transformei o sistema em dinâmico não está mais abrindo o modal de cada portfólio qd clica nele, sendo que eu inspecionei a página e está pegando os valores corretos na ID, só não está abrindo mesmo, e outro modal sem o PHP continua abrindo normalmente.
       
       
      <section id="portfolio"> <div class="container"> <div class="text-center"> <h3 class="section-heading">Portfólio</h3> </div>   <ul id="port-group"> <?php while($dado = mysqli_fetch_assoc($consulta) ) { ?> <li> <div class="portfolio-item"> <a href="#portmodal<?php echo $dado['id']; ?>" class="portfolio-link" data-toggle="modal"> <div class="portfolio-hover"> <div class="portfolio-hover-content pagport"> <i class="fa fa-plus fa-3x"></i> </div> </div> <div class="portfolio-responsive idportimg1"> <style>.idportimg1 {background-image: url("img/bg.png")}</style> </div> </a>   <div class="portfolio-caption"> <h5><?php echo $dado['titulo']; ?></h5> <p class="text-muted"><?php echo $dado['subtitulo']; ?></p> </div> </div> </li>   <!-- Portfolio Modal --> <div class="portfolio-modal modal fade" id="portmodal<?php echo $dado['id']; ?>>" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="close-modal" data-dismiss="modal"> <div class="lr"> <div class="rl"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-lg-2"> </div> <div class="col-lg-8"> <div class="modal-body"> <h3><?php echo $dado['titulo']; ?></h3> <img class="img-responsive img-centered" src="img/portfolio/site1.jpg" alt=""> <p><?php echo $dado['descricao']; ?></p> <img class="img-responsive img-centered" src="img/portfolio/site11.jpg" alt=""> <ul class="list-inline"> <li><?php echo $dado['datax']; ?></li> <li><?php echo $dado['cliente']; ?></li> <li><?php echo $dado['categoria']; ?></li> </ul> <button type="button" class="btn-close" data-dismiss="modal"><i class="fa fa-times"></i> Fechar</button> </div> </div> <div class="col-lg-2"> </div> </div> </div> </div> </div> </div> <?php } ?> </ul> </div> </section>
    • By NeumarFreire
      Caros amigos. Sou novo neste forum e tenho um problema de código na página resposta. Apesar dos indeces estarem de acordo com os "name" do formulários o erro se mantém.
      Troquei o Method no campo emailId para GET e o erro desapareceu mas nos outros campos não. Vejam o código EM NEGRITO abaixo e se puderem ajudar...
      <?php include_once 'restrito_all.php'; ?>
      <?php include_once 'validar_user.php'; ?>
      <?php include_once 'header.php'; ?>
      <?php
      date_default_timezone_set('America/Sao_Paulo');
      $data= date('d/m/Y');
      $hora= date('H:i').' H';
      ?>
            
            <div id="local">
                  <div class="caminho">Onde estou: NFL & Associados &raquo; Painel de Controle &raquo; Admin &raquo; Visualizar/Responder</div>
                  <div class="welcome">Olá, <?php echo $clienteNome;?> | <?php  echo $data .' às '.$hora ?> | <a href="deslogar.php">Sair</a></div>
            </div>

             <div id="content">
           
      <?php include_once 'menu.php'; ?>
         
                   <div id="content_conteudo">
                   
      <?php include_once 'carregando.php'; ?>

      <?php
      $emailAdmin ='contato@nflweb.com.br';
      $emailAssunto = 'CONTATO Portal Imobiliário NFL & Associados';
      $emailStatus = 'completo';
      $emailResposta = date ('Y-m-d H:i:s');
      $headers = "From: $emailAdmin\n";
      $headers .= "MIME-Version: 1.0\n";
      $headers .= "content-type:text/html; charset=\"utf-8\"/n/n";
      $emailId = $_GET['emailId'];
      $emailTxt = $_POST['mensagem'];
      $emailEmail = $_POST['emailEmail'];
      $recebidoEm = $_POST['emailData'];
      $mensagemEm = $_POST['emailMensagem'];
      $sql_enviaAdmin = 'UPDATE imobi_mailadmin SET = emailStatus = :emailStatus, emailResposta = :emailResposta, emailTxt = :emailTxt WHERE emailId = :emailId ';
      try{
          $query_enviaAdmin = $conecta->prepare($sql_enviaAdmin);
          $query_enviaAdmin->bindValue(':emailStatus',$emailStatus,PDO::PARAM_STR);
          $query_enviaAdmin->bindValue(':emailResposta',$emailResposta,PDO::PARAM_STR);
          $query_enviaAdmin->bindValue(':emailTxt',$emailTxt,PDO::PARAM_STR);
          $query_enviaAdmin->bindValue(':emailId',$emailId,PDO::PARAM_STR);
          $query_enviaAdmin->execute();
          echo '<div class="ok">Mensagem enviada com sucesso!</div><br /> ';
          
      }catch(PDOexception $error_adminEmail){
          echo 'Erro ao atualizar e-mail';
      }
      ?>
                   
                   <div class="inbox">
                   
      <table width="100%" border="0" cellspacing="2" cellpadding="0">
        <tr class="cabecalho">
          <td align="center">DATA</td>
          <td align="center">NOME</td>
          <td align="center">E-MAIL</td>
          <td align="center">EXECUTAR:</td>
        </tr>
       
       <?php
         $emailId =$_GET ['emailId'];
         $sql_inboxAdmin = 'SELECT * FROM imobi_mailadmin WHERE emailId = :emailId ';
      try{
          
          $query_inboxAdmin = $conecta->prepare($sql_inboxAdmin);
          $query_inboxAdmin->bindValue(':emailId', $emailId,PDO::PARAM_STR);
          $query_inboxAdmin->execute();
          
          $resultado_inboxAdmin = $query_inboxAdmin->fetchAll(PDO::FETCH_ASSOC);
          
          }catch(PDOexception $error_inboxAdmin){
              echo 'Erro ao selecionar pendentes.';
          }
          $i=0;
          foreach($resultado_inboxAdmin as $res_inboxAdmin){
              
              $emailId = $res_inboxAdmin['emailId'];
              $emailNome = $res_inboxAdmin ['emailNome'];
              $emailMensagem = $res_inboxAdmin ['emailMensagem'];
              $emailEmail = $res_inboxAdmin ['emailEmail'];
              $emailData = $res_inboxAdmin ['emailData'];
              $emailStatus = $res_inboxAdmin ['emailStatus'];
              $emailResposta = $res_inboxAdmin ['emailResposta'];
              $emailTxt = $res_inboxAdmin ['emailTxt'];
              $cor = 'bgcolor="#EBE9FE"';
      ?>  
       
        <tr <?php echo $cor; ?>>
          <td align="center"><?php echo date('d/m/Y - H:i',strtotime($emailData));?>h</td>
          <td align="left"><?php echo $emailNome;?></td>
          <td align="center"><?php echo $emailEmail;?></td>
          <td align="center" ><a href="painel.php">Voltar</a></td>
        </tr>
       
        <tr <?php echo $cor; ?>>
          <td align="center" class="cabecalho">MENSAGEM:</td>
          <td align="left" colspan="3"><?php echo $emailMensagem;?></td>
        </tr>
       
       
       <?php
        }  
       
      ?>
       
      </table>
             
                </div> <!--FECHA CLASS INBOX --> <br />
      <br />
           <form name="responderEmail" action="" enctype="multipart/form-data" method="POST">
               <label>
                   <span>Escreva a resposta: </span>
                  <textarea rows="8" name="mensagem" cols="108"></textarea>
               </label>
               <input type="hidden" name = "emailId" value = "<?php echo $emailId;?>" />
               <input type="hidden" name = "emailEmail"  value = "<?php echo $emailEmail;?>" />
               <input type="hidden" name = "emailData"  value = "<?php echo $emailData;?>" />
               <input type="hidden" name = "emailMensagem"  value = "<?php echo $emailMensagem;?>" />
                         
               <input type="submit" name = "executar" id="executar" value="Enviar resposta" />
           </form>  
                    
               </div> <!--FECHA CONTENT CONTEUDO-->
               
           </div> <!--CONTENT-->

      <?php include_once 'footer.php'; ?>

    • By daniramon
      Olá pessoal, tudo bem?
       
      Sou novato em PHP, e preciso criar a seguinte função.
       
      Meu problema: 
      - Recebo os seguintes parâmetros: (total de alunos & número de pessoas por grupo).
      - Preciso definir um número ideal de pessoas por grupo, sem deixar nenhum grupo desfalcado. 
      - Mínimo de 4 pessoas por grupo;
      <?php $totalUsers = 50; $usersPerGroup = 6; $minPerGroup = 4; ?>  
      $var = $totalUsers / $usersPerGroup;
       
      Na simulação acima, terei 7 grupos com 6 pessoas, e um grupo com 1,4 pessoas..rs.
       
      Gostaria, que a função me retornasse, em um mundo ideal:
       
      7 grupos com 6 pessoas = 42 pessoas
       
       2  grupos com 4 pessoas = 8 pessoas
      <?php return $array = [ 7 => 6, 2 => 4]; ?>  
      Alguém poderia me ajudar na criação desta função, please...
    • By Carcleo
      Parece brincadeira, mas estou fazem 3 dias tentando instalar a cURL e não consigo
      Windows 10 Pro Apache 2.4 Php 7.3.4 MySQL 8.0.15.0 Tentativas:
      1) libeay32.dll, msvcr71.dll, ssleay32.dll e php_curl.dll coladas na pasta system32 e adicionadas ao PATH do Windows 2) Baixei a biblioteca cURL do site https://curl.haxx.se/, cliquei em curl.exe e nada acontece. 3) ;extension=CURL e ;extension=php_curl.dll descomentadas no php.ini (Embora a linha ;extension=php_curl.dll não exista nessa versão do PHP eu inserí ela na lista) 4) Confirmado de que o php.ini é o correto.  Agora só faltam 2 tentativas
       
      A) Apelar para a fé.
      B) Instalar Apache e PHP antigos pois lembro-me que usei em um projeto fazem uns anos e funcionava de boa.
           Mas não gostara de voltar no tempo.
       
      Claro que essas 2 foram só para descontrair!
       
      Alguém me ajuda? Ode estou errando?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.