Jump to content
Carlos_e!3

O select não está enviando o cod para o banco e sim o nome

Recommended Posts

BOA NOITE GALERA, sou iniciante na área de php.

Estou com um problema no meu código!

Usei um select para o usuário selecionar o fotografo mas ele está enviando o nome do fotografo para o banco e não o código.

Segue o código ae em baixo:

<?php 
  include ("cabecalho.php"); 
  include ("fotoDAO.php"); 
  include ("fotografoDAO.php");

  $fotografos = listarFotografos();

  $nome = isset($_POST['nome'])?$_POST['nome']:"";
  $titulo = isset($_POST['titulo'])?$_POST['titulo']:"";
  $cod_fotografo = isset($_POST['cod_fotografo'])?$_POST['cod_fotografo']:"";
  $cod_servico = isset($_POST['cod_servico'])?$_POST['cod_servico']:"";
  $descricao =  isset($_POST['descricao'])?$_POST['descricao']:"";
  if(!empty($nome) || !empty($titulo) || !empty($cod_fotografo) || !empty($cod_servico) || !empty($descricao)){
    cadastrarFotoServico($nome,$titulo,$cod_fotografo,$cod_servico,$descricao);
  }  
?>



</style>
<div class="fundo">
  <div class="container">
  </br>
  </br>
</div>
<div class="form">
  <div class="thumbnail"><img src="css/user.png"></div>
  <form class="login-form" method="POST" enctype="multipart/form-data">
    ARQUIVO<input id="arquivo" type="file" name="arquivo" class="validate" required>
    <input id="titulo" name="titulo" type="text" class="validate" required placeholder="TITULO">
    
    <select name="cod_fotografo" id="cod_fotografo" class="validate">
      <option>FOTOGRAFO</option>
    <?php foreach ($fotografos as $fotografo){?>
      <option value="<?=fotografo['cod']?>"><?=$fotografo['nome']?></option>
        <?php } ?>
    </select>

    <input id="cod_servico" name="cod_servico" type="text" class="validate" required placeholder="SERVICO">
    <input id="descricao" name="descricao" type="text" class="validate" placeholder="DESCRICAO">
    <button type="submit">Cadastrar</button>
  </form>
</div>
</div>

<?php include("rodape.php"); ?>

 

Share this post


Link to post
Share on other sites

troque isso

<select name="cod_fotografo" id="cod_fotografo" class="validate">
      <option>FOTOGRAFO</option>
    <?php foreach ($fotografos as $fotografo){?>
      <option value="<?=fotografo['cod']?>"><?=$fotografo['nome']?></option>
        <?php } ?>
</select>

 

por isso


<select name="cod_fotografo" id="cod_fotografo" class="validate">
      <option>FOTOGRAFO</option>
    <?php foreach ($fotografos as $fotografo){?>
      <option value="<?php echo $fotografo['cod']?>"><?php echo $fotografo['nome']?></option>
        <?php } ?>
</select>

Onde você errou:

No value do option você não iniciou a variável com $, toda variável precisa ser iniciada com $.

Você não deu echo nas variáveis.

Procure sempre abrir a tag do php assim: <?php

Testa aí e vê se vai agora.

Share this post


Link to post
Share on other sites

@BrunoMs, o problema ali foi somente a falta do cifrão para identificar a variável.

 

Essa forma de abrir tag PHP e dar um echo simples está correta, e o código até fica mais limpo:

<?= $teste ?>

 

Share this post


Link to post
Share on other sites
1 hora atrás, Ambrosi disse:

@BrunoMs, o problema ali foi somente a falta do cifrão para identificar a variável.

 

Essa forma de abrir tag PHP e dar um echo simples está correta, e o código até fica mais limpo:


<?= $teste ?>

 

 

Bacana, no caso o sinal de = está dando o echo?

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 Vibraphera
      Oi gente eu recentemente comecei a aprender php e fui atras de desafios legais e me deparei com um que até hoje não consigo resolver.
      Preciso mostrar a maior e a menor palavra de uma frase ou texto. Eu tentei transformar em um array mas não sei se seria o adequado.
      Resumindo apenas me retorna corretamente a maior palavra mas a menor não me retorna nada. ALGUÉM ME DA UM HELP kk
      OBS: quando não tem ponto final parece que não retorna nada e quando tem ponto final ele retorna o 'ou' da frase mas não deveria retornar a letra 'é' ou a letra 'a'?
       
      <?php
      $texto = 'Como faço para saber qual é a menor e a maior de uma frase ou grandes textos';
      $arr = explode(" ", $texto);
      $maior="";
      $menor="";
      for ($i=0; $i <count($arr) ; $i++) { 
          $atual = $arr[$i];
          if (strlen($atual) > strlen($maior)) {
              $maior = $atual;
          } else if (strlen($atual) < strlen($maior)) {
              $menor = $atual;
          }
      }
      echo "<br>";
      echo $maior;
      echo "<br>";
      echo $menor;
    • By danteblatt
      Olá Srs,
      Não tenho muito conhecimento em PHP e estou com um formulário onde o usuário tem alguns campos para preencher e gravar no banco de dados SQL, sendo que um campo deste form será dinâmico onde o usuário poderá adicionar quantos campos forem necessários a partir de um botão "+".
      Nome do campo dinâmico: chavenf
      Segue abaixo o código do formulário:
      <form method="POST" action="../includes/mf-processa.php"> <div class="form-group"> <div class="form-row"> <div class="form-group col-md-4"> <input type="hidden" name="usuario[]" value="<?php echo $_SESSION['usuarioNome']; ?>" /> <select class="form-control" id="tipo" name="tipo[]"> <option selected>Tipo</option> <option>1</option> <option>2</option> </select> </div> <div class="form-group col-md-4"> <select class="form-control" id="prioridade" name="prioridade[]"> <option selected>Prioridade</option> <option>Alta</option> <option>Padrão</option> </select> </div> <div class="form-group col-md-4"> <input class="form-control" type="text" name="fornecedor[]" placeholder="Fornecedor" id="fornecedor"> </div> </div> <div style="display:none;" class="form-row" id="chavecte"> <div class="form-group col-md-12"> <label>Chave </label> <input class="form-control" type="text" name="chavecte[]"> </div> </div> <div class="form-row" id="row-nota"> <div class="form-group col-md-12"> <label>Chave da NF </label> <input class="form-control" type="text" name="chavenf[]" id="chavenf"> </div> </div> <div style="display:none;" class="form-row" id="add-field-nf"> <div class="form-group col-md-2"> <button type="button" class="btn btn-primary" id="add"> + </button> </div> </div> <div class="form-row"> <div class="form-group col-md-2"> <input type="submit" class="btn btn-primary" value="Cadastrar"> </div> </div> </div> </form> <script> $( "#add" ).click(function() { $( "#row-nota" ).append('<div class="form-group col-md-12"><input class="form-control" type="text" name="chavenf[]" id="chavenf"></div>'); }); </script> Abaixo o arquivo que conecta e insere no BD, "mf-processa.php"
      <?php session_start(); include_once("conexao.php"); $prioridade = filter_input(INPUT_POST, 'prioridade', FILTER_SANITIZE_STRING); $usuarioentrada = filter_input(INPUT_POST, 'usuario', FILTER_SANITIZE_STRING); $tipofrete = filter_input(INPUT_POST, 'tipofrete', FILTER_SANITIZE_STRING); $fornecedor = filter_input(INPUT_POST, 'fornecedor', FILTER_SANITIZE_STRING); $chavenf = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavenf', FILTER_SANITIZE_STRING)); $chavecte = preg_replace("/\s+/", "", filter_input(INPUT_POST, 'chavecte', FILTER_SANITIZE_STRING)); $nNF = substr($chavenf, 25, 9); $timenow = date('d-m-Y'); $timenow .= ' '.date('H:i:s'); $qtnotas = count($chavenf)-1; for ($f = 0; $f <= $qtnotas; $f++) { $sql = "INSERT INTO base (data, usuarioentrada, prioridade, tipofrete, nf, fornecedor, chavenf, chavecte, acao, dataretorno, usuariofiscal) VALUES ( '.$timenow[$f].', '.$usuarioentrada[$f].', '.$prioridade[$f].', '.$tipofrete[$f].', '.$nNF[$f].', '.$fornecedor[$f].', '.$chavenf[$f].', '.$chavecte[$f].', '', '', '' )" or die ("<center>Erro: " . mysqli_error() . "</center>"); $insert = mysqli_query($conn, $sql); if(mysqli_insert_id($conn)){ $_SESSION['msgrec'] = "<p style='color:green;'>Nota cadastrada com sucesso!</p>"; header("Location: ../recebimento/recebimento.php"); }else{ $_SESSION['msgrec'] = "<p style='color:red;'>Nota não cadastrada com sucesso!</p>"; header("Location: ../recebimento/recebimento.php"); }  
       
      Veja o erro retornado na página.. Já tentei alterar o código e mesmo assim não consegui efetuar a inserção dos dados no BD.
       
      ( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 31 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0  
      ( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 41 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0  
      ( ! ) Notice: Uninitialized string offset: 0 in D:\Wamp\www\RecebimentoAdm\includes\mf-processarecebimento.php on line 42 Call Stack # Time Memory Function Location 1 0.0001 411528 {main}( ) ...\mf-processarecebimento.php:0
    • By lordstarlight
      Olá, 
       
      Como posso bloquear todos ips, menos o meu para acesso ao meu site?
      preciso fazer isto para poder fazer manutenção.
       
      obrigado!
    • By lordstarlight
      Olá pessoal,
       
      Tenho uma base de dados onde há um campo decimal que guarda um valor tipo (10.20).
      Quanto tento retornar o valor multiplicado por quantidade (10.2 * 2) retorna apenas 20,00
       
      $subTotal = $qtdeItem * $precoProduto;
      echo  'R$ '.number_format($subTotal,2,",",".");?><br>
       
      Como faço para retornar 20,40 ?
×

Important Information

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