Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gzoca

[Resolvido] Como fazer insert de uma session

Recommended Posts

Olá. Sou nova aqui e também sou iniciante em php. E me perdoem desculpem se minha pergunta for obvia
demais. Mas pesquisei muito, e não acho uma solução para esse problema. Eu preciso fazer um site de workshops,
onde um aluno pode se inscrever em até 3 workshops diferentes(ele não pode se inscrever mais de uma vez no mesmo 
workshop), nesse caso, criei um login para ele, e para que o aluno acesse a página dos workshops, ele precisa 
obrigatoriamente estar logado. Mas o problema é que não sei como passar o id do usuário logado para o workshop
em questão, tentei fazer esse código:

 

<!DOCTYPE html>
<html lang = "pt-BR">
    <head>
    </head>
    <?php
        
        session_start();
            
        if($_SESSION['logado'] != true)
        {
            header("Location: index.html");
        }
        else
        {
            $strcon = mysqli_connect('localhost', 'root', 'giovana', 'db_workshop') or die ('Erro ao conectar ao banco de dados');
            $sql = $strcon->query("SELECT cd_aluno FROM item_workshop_aluno WHERE cd_aluno='".$_SESSION["cd_aluno"]."'");
            
            if(mysqli_num_rows($sql)){
                echo "<script>confirm('Você já se cadastrou neste workshop', window.location.href='workshops.php')</script>";
                exit();
            }else {
                $insere = $strcon->query("INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, '".$_SESSION["cd_aluno"]."')");
                
                mysqli_query($strcon) or die ("<script>confirm('Erro ao tentar cadastrar registro', window.location.href='workshops.php')</script>");
        
                mysqli_close($strcon);
        
                echo "<script>confirm('Você participará deste workshop', window.location.href='workshops.php')</script>";
            }
        }
?>
</html>

Mas ele está apresentando "Erro ao cadastrar registro". Alguém poderia me ajudar no que estou fazendo de errado,
por favor?
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia. Bem vinda ao fórum.

 

Você precisa primeiro entender o conceito de autenticação do usuário. Você não está pegando o usuário em questão no banco de dados para obter o seu ID. Dê uma pesquisada sobre sistema de login com php que você irá entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 horas atrás, Alaerte Gabriel disse:

Bom dia. Bem vinda ao fórum.

 

Você precisa primeiro entender o conceito de autenticação do usuário. Você não está pegando o usuário em questão no banco de dados para obter o seu ID. Dê uma pesquisada sobre sistema de login com php que você irá entender.

Primeiramente, obrigada por responder. Mas a autenticação do usuário já foi feita, essa seria a página que já iria inseri-lo em algum workshop. Por exemplo, ele já logado(e autenticado), clica em um botão "Inscrever-se", que irá inserir os dados dele nessa tabela de workshop em questão. Desculpa se não estou conseguindo ser clara o suficiente. O problema mesmo é que não sei como obter o ID do usuário em questão que está logado, já fiz diversas pesquisas e tentei diversas formas, mas mesmo assim continuou dando erro. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema provavelmente está nessas duas linhas:

$insere = $strcon->query("INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, '".$_SESSION["cd_aluno"]."')");
mysqli_query($strcon) or die ("<script>confirm('Erro ao tentar cadastrar registro', window.location.href='workshops.php')</script>");

Honestamente, não entendi muito bem o que está sendo feito aí...

Na minha cabeça isso soa como uma instrução SQL sendo executada duas vezes, pois há duas queries.

 

Como você faz a inserção de um usuário no seu sistema? Ou de um workshop? Veja estes exemplos e tente reaplicá-los neste caso.

 

1 - Certifique-se de que $_SESSION[ 'cd_aluno' ] possua um valor válido. Para isso, você pode dar um echo nessa variável antes de fazer a inserção e ver o resultado gerado (provavelmente o id do usuário, como 3 ou 4, por ex). Apenas para termos certeza.

 

2 - Acesse o seu banco de dados e certifique-se de que as informações estão corretas (a linha não está inserida, os nomes dos campos estão corretos, etc.)

 

3 - Certifique-se de entender como a inserção é feita. Pelo que entendi você está utilizando Mysqli, mas em um momento você utiliza orientação à objetos, onde $strcon é um objeto, em outro momento você utiliza estilo procedural com a função mysqli_query.

O que é $strcon? O que faz o método query? E mysqli_query?

 

Veja: http://php.net/manual/pt_BR/mysqli.query.php

Perceba que no manual existem duas formas de executar a consulta muito parecidas como você fez, mas somente UMA é utilizada.

Veja bem os exemplos do manual.

 

EDIT: outra coisa... a julgar pelo título do seu tópico, "como fazer insert de uma session", parece que você entende que sessions são diferentes das demais variáveis no php, quando na verdade não são. A superglobal $_SESSION nada mais é do que um array multidimensional e associativo (bem como qualquer outro no PHP), com a única diferença de que ele é populado automaticamente quando você chamar o session_start() e modificado conforme sua necessidade ao longo da execução do código.

O que eu quero dizer com tudo isso é que não há motivos para dar problema no seu insert pelo fato de você estar utilizando o array $_SESSION. Apenas certifique-se de que o índice do array de sessão é válido, existente e possui um valor aceitável.

Veja: https://secure.php.net/manual/pt_BR/session.examples.basic.php

 

Boa sorte e seja bem-vinda ao fórum!

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 minutos atrás, Matheus Tavares disse:

O problema provavelmente está nessas duas linhas:


$insere = $strcon->query("INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, '".$_SESSION["cd_aluno"]."')");
mysqli_query($strcon) or die ("<script>confirm('Erro ao tentar cadastrar registro', window.location.href='workshops.php')</script>");

Honestamente, não entendi muito bem o que está sendo feito aí...

Na minha cabeça isso soa como uma instrução SQL sendo executada duas vezes, pois há duas queries.

 

Como você faz a inserção de um usuário no seu sistema? Ou de um workshop? Veja estes exemplos e tente reaplicá-los neste caso.

 

1 - Certifique-se de que $_SESSION[ 'cd_aluno' ] possua um valor válido. Para isso, você pode dar um echo nessa variável antes de fazer a inserção e ver o resultado gerado (provavelmente o id do usuário, como 3 ou 4, por ex). Apenas para termos certeza.

 

2 - Acesse o seu banco de dados e certifique-se de que as informações estão corretas (a linha não está inserida, os nomes dos campos estão corretos, etc.)

 

3 - Certifique-se de entender como a inserção é feita. Pelo que entendi você está utilizando Mysqli, mas em um momento você utiliza orientação à objetos, onde $strcon é um objeto, em outro momento você utiliza estilo procedural com a função mysqli_query.

O que é $strcon? O que faz o método query? E mysqli_query?

 

Veja: http://php.net/manual/pt_BR/mysqli.query.php

Perceba que no manual existem duas formas de executar a consulta muito parecidas como você fez, mas somente UMA é utilizada.

Veja bem os exemplos do manual.

 

Boa sorte e seja bem-vinda ao fórum!

Olá, obrigada pela resposta. Eu verifiquei as dicas que me deu, e segui o conselho de fazer um echo para ver se a session estava possuindo um valor válido, mas não aparece nenhum resultado, eu alterei alguns códigos e ficou assim:

 

<!DOCTYPE html>
<html lang = "pt-BR">
    <head>
    </head>
    <?php
        
        session_start();
            
        if($_SESSION['logado'] != true)
        {
            header("Location: index.html");
        }
        else
        {
            $strcon = mysqli_connect('localhost', 'root', 'giovana', 'db_workshop') or die ('Erro ao conectar ao banco de dados');
            $sql = $strcon->query("SELECT cd_aluno FROM item_workshop_aluno WHERE cd_rm_aluno= ".$_SESSION['aluno']." "); /*Nessa linha eu tento 
            pegar o código do aluno cadastrado, utilizando da session dele(essa session está correta, porque na página inicial do aluno, consigo
            exibi-la).*/
            
            if(mysqli_num_rows($sql)){ //Aqui eu confirmo se esse mesmo aluno já se cadastrou nesse workshop
                echo "<script>confirm('Você já se cadastrou neste workshop', window.location.href='workshops.php')</script>";
                exit();
            }else { //Se não se cadastrou, ele insere os valores no banco do workshop em questão
                $insere = "INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, '$sql')";
                
                mysqli_query($strcon, $insere) or die ("<script>confirm('Erro ao tentar cadastrar registro', window.location.href='workshops.php')  </script>"); //Mas sempre cai nessa linha de erro
        
                mysqli_close($strcon);
        
                echo "<script>confirm('Você participará deste workshop', window.location.href='workshops.php')</script>";
            }
            
            
        }
?>
</html>

Eu tenho quase certeza que o erro está nesse select que estou fazendo utilizando da session, mas eu não sei como fazer um select usando o valor dessa session. Você teria alguma dica de como fazer esse select usando o valor da sessão de login do aluno? Muito obrigada pelas dicas que me deu. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu alterei o código novamente, após achar alguns erros. Agora eu conferi e ele busca o resultado correto. Porém, ao invés de fazer o processo do insert, ele para na página que deveria fazer apenas a validação e fica tudo em branco, segue o código:

<!DOCTYPE html>
<html lang = "pt-BR">
    <head>
    </head>
    <?php
        
        session_start();
            
        if($_SESSION['logado'] != true)
        {
            header("Location: index.html");
        }
        else
        {
            $strcon = mysqli_connect('localhost', 'root', 'giovana', 'db_workshop') or die ('Erro ao conectar ao banco de dados');
            
            $checa = $strcon->query("SELECT cd_aluno FROM item_workshop_aluno WHERE cd_rm_aluno= ".$_SESSION['aluno']." ");
            $sql = $strcon->query("SELECT cd_aluno FROM tb_aluno WHERE cd_rm_aluno= ".$_SESSION['aluno']." ");
            
            if(mysqli_num_rows($checa)){
                echo "<script>confirm('Você já se cadastrou neste workshop', window.location.href='workshops.php')</script>";
                exit();
            }else {
                $insere = "INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, '$sql')";
                
                mysqli_query($strcon, $insere) or die ("<script>confirm('Erro ao tentar cadastrar registro', window.location.href='workshops.php')</script>");
        
                mysqli_close($strcon);
        
                echo "<script>confirm('Você participará deste workshop', window.location.href='workshops.php')</script>";
            }
            
            
        } 
    ?>
</html>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gzoca. Conseguiu solucionar o problema? Como está seu código nesse momento?

 

Pelo que entendi você está com dificuldades em pegar o valor extraído do banco para usá-lo como valor no INSERT, é isso?

 

Então vamos lá: ao invés de trabalhar no seu código, criei um novo para que você pudesse ler linha-a-linha e entender cada uma para aplicar no seu código:

Seu código ainda está ambíguo no sentido de orientação a objetos x estrutural em relação ao uso do Mysqli. Vamos solucionar isso utilizando apenas orientado a objetos, ok? Segue o exemplo. Peço que leia cada linha para entender seu funcionamento.

<?php
//Conexao feita a partir de uma instância da classe mysqli
//e não mais pela função mysqli_connect
$mysqli = new mysqli( 'HOST', 'USER', 'SENHA', 'DATABASE' );

//Fazemos uma consulta no banco.
//O resultado dessa consulta será atribuido EM FORMA DE OBJETO à $result.
//Na presença de algum erro, será retornado FALSE.
$result = $mysqli->query( 'SELECT * FROM `alunos`' );

//Havendo algum erro, exibimos.
if ( !$result )
    printf( 'ERRO: %s<br>', $mysqli->error );

//Não havendo erros, verificamos se ao menos um registro foi selecionado.
//num_rows é uma propriedade do objeto mysqli_result que nos indica a qtd. de registros.
//Se maior que zero, na conversão para booleano vira TRUE. 0 é associado como FALSE
//
//Resumindo: o if vai passar se a consulta estiver OK e retornou ao menos um registro
elseif ( $result->num_rows ) {
    //A partir daqui estamos livres para utilizar o(s) registro(s) selecionado(s)
    //Como já sabemos que queremos apenas um registro, podemos simplesmente pegá-lo:
    $row = $result->fetch_assoc();
    
    //$row agora é um array associativo com o valor retornado.
    //As colunas do banco são os índices desse array, com seus respectivos valores.
    //Exemplo de uso:
    echo 'ID: ' . $row[ 'id' ];
    echo '<br>';
    echo 'Nome: ' . $row[ 'nome' ];
}

 

Eu criei aqui no meu ambiente uma tabela alunos com id e nome e alguns registros. O resultado gerado foi esse:

ID: 4
Nome: Joao

 

Agora vamos resumir um pouco o código para fazer exatamente a mesma coisa:

<?php
$mysqli = new mysqli( 'HOST', 'USER', 'SENHA', 'DATABASE' );

$sql = 'SELECT * FROM `alunos`';

if ( !( $result = $mysqli->query( $sql ) ) )
    printf( 'ERRO: %s<br>', $mysqli->error );

elseif ( $result->num_rows ) {
    list ( $id, $nome ) = $result->fetch_row();
    printf( 'ID: %d<br>Nome: %s', $id, $nome );
}

Nesse segundo exemplo eu fiz uso do fetch_row ao invés do fetch_assoc.

A diferença é que o fetch_row gera um array com índices numéricos, enquanto o fetch_assoc gera um associativo, como explicado no primeiro exemplo.

Na prática é isso:

Para acessar o ID com fetch_assoc fica $row[ 'id' ], enquanto com fetch_row fica $row[ 0 ];

Para acessar o NOME com fetch_assoc fica $row[ 'nome' ], enquanto com fetch_row fica $row[ 1 ];

 

Observe que os nomes em fetch_assoc são os mesmos das colunas no banco... e os números de fetch_row são ordenados, de acordo com o resultado obtido pela consulta.

 

Veja:

http://php.net/manual/pt_BR/mysqli-result.fetch-row.php

http://php.net/manual/pt_BR/mysqli-result.fetch-assoc.php

 

Na prática você pode utilizar somente o fetch_assoc, mas é interessante conhecer as diferenças. Além disso, como eu utilizei o list() para criar as variáveis manualmente no segundo exemplo, seria desnecessário o fetch_assoc, mas ele poderia ter sido usado também.

 

Agora voltando ao seu código...

 

Não vou analisar muito, pois quero que você aproveite o exemplo e modifique para tentar corrigir o problema sozinha, além disso talvez você já tenha solucionado ou modificado seu código, por causa da demora na resposta, mas posso te indicar o seguinte: 

$sql = $strcon->query("SELECT cd_aluno FROM tb_aluno WHERE cd_rm_aluno= ".$_SESSION['aluno']." ");

//... algum código irrelevante...

$insere = "INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, '$sql')";

Esse código não faz sentido. Lembra que query retorna um mysqli_result? Você teria que fazer algo assim:

$sql = $strcon->query('SELECT cd_aluno FROM tb_aluno WHERE cd_rm_aluno = ' . $_SESSION['aluno'] );

$row = $sql->fetch_assoc();

$strcon->query( 'INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, ' . $row['cd_aluno'] . ' )' );

( e retirar as linhas mysqli_query e mysqli_close presentes abaixo ).

 

Enfim... espero que ajude.

Até mais, bom domingo! :smile:

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 05/11/2017 at 10:52, Matheus Tavares disse:

Olá gzoca. Conseguiu solucionar o problema? Como está seu código nesse momento?

 

Pelo que entendi você está com dificuldades em pegar o valor extraído do banco para usá-lo como valor no INSERT, é isso?

 

Então vamos lá: ao invés de trabalhar no seu código, criei um novo para que você pudesse ler linha-a-linha e entender cada uma para aplicar no seu código:

Seu código ainda está ambíguo no sentido de orientação a objetos x estrutural em relação ao uso do Mysqli. Vamos solucionar isso utilizando apenas orientado a objetos, ok? Segue o exemplo. Peço que leia cada linha para entender seu funcionamento.


<?php
//Conexao feita a partir de uma instância da classe mysqli
//e não mais pela função mysqli_connect
$mysqli = new mysqli( 'HOST', 'USER', 'SENHA', 'DATABASE' );

//Fazemos uma consulta no banco.
//O resultado dessa consulta será atribuido EM FORMA DE OBJETO à $result.
//Na presença de algum erro, será retornado FALSE.
$result = $mysqli->query( 'SELECT * FROM `alunos`' );

//Havendo algum erro, exibimos.
if ( !$result )
    printf( 'ERRO: %s<br>', $mysqli->error );

//Não havendo erros, verificamos se ao menos um registro foi selecionado.
//num_rows é uma propriedade do objeto mysqli_result que nos indica a qtd. de registros.
//Se maior que zero, na conversão para booleano vira TRUE. 0 é associado como FALSE
//
//Resumindo: o if vai passar se a consulta estiver OK e retornou ao menos um registro
elseif ( $result->num_rows ) {
    //A partir daqui estamos livres para utilizar o(s) registro(s) selecionado(s)
    //Como já sabemos que queremos apenas um registro, podemos simplesmente pegá-lo:
    $row = $result->fetch_assoc();
    
    //$row agora é um array associativo com o valor retornado.
    //As colunas do banco são os índices desse array, com seus respectivos valores.
    //Exemplo de uso:
    echo 'ID: ' . $row[ 'id' ];
    echo '<br>';
    echo 'Nome: ' . $row[ 'nome' ];
}

 

Eu criei aqui no meu ambiente uma tabela alunos com id e nome e alguns registros. O resultado gerado foi esse:


ID: 4
Nome: Joao

 

Agora vamos resumir um pouco o código para fazer exatamente a mesma coisa:


<?php
$mysqli = new mysqli( 'HOST', 'USER', 'SENHA', 'DATABASE' );

$sql = 'SELECT * FROM `alunos`';

if ( !( $result = $mysqli->query( $sql ) ) )
    printf( 'ERRO: %s<br>', $mysqli->error );

elseif ( $result->num_rows ) {
    list ( $id, $nome ) = $result->fetch_row();
    printf( 'ID: %d<br>Nome: %s', $id, $nome );
}

Nesse segundo exemplo eu fiz uso do fetch_row ao invés do fetch_assoc.

A diferença é que o fetch_row gera um array com índices numéricos, enquanto o fetch_assoc gera um associativo, como explicado no primeiro exemplo.

Na prática é isso:

Para acessar o ID com fetch_assoc fica $row[ 'id' ], enquanto com fetch_row fica $row[ 0 ];

Para acessar o NOME com fetch_assoc fica $row[ 'nome' ], enquanto com fetch_row fica $row[ 1 ];

 

Observe que os nomes em fetch_assoc são os mesmos das colunas no banco... e os números de fetch_row são ordenados, de acordo com o resultado obtido pela consulta.

 

Veja:

http://php.net/manual/pt_BR/mysqli-result.fetch-row.php

http://php.net/manual/pt_BR/mysqli-result.fetch-assoc.php

 

Na prática você pode utilizar somente o fetch_assoc, mas é interessante conhecer as diferenças. Além disso, como eu utilizei o list() para criar as variáveis manualmente no segundo exemplo, seria desnecessário o fetch_assoc, mas ele poderia ter sido usado também.

 

Agora voltando ao seu código...

 

Não vou analisar muito, pois quero que você aproveite o exemplo e modifique para tentar corrigir o problema sozinha, além disso talvez você já tenha solucionado ou modificado seu código, por causa da demora na resposta, mas posso te indicar o seguinte: 


$sql = $strcon->query("SELECT cd_aluno FROM tb_aluno WHERE cd_rm_aluno= ".$_SESSION['aluno']." ");

//... algum código irrelevante...

$insere = "INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, '$sql')";

Esse código não faz sentido. Lembra que query retorna um mysqli_result? Você teria que fazer algo assim:


$sql = $strcon->query('SELECT cd_aluno FROM tb_aluno WHERE cd_rm_aluno = ' . $_SESSION['aluno'] );

$row = $sql->fetch_assoc();

$strcon->query( 'INSERT INTO item_workshop_aluno(cd_workshop, cd_aluno) VALUES (1, ' . $row['cd_aluno'] . ' )' );

( e retirar as linhas mysqli_query e mysqli_close presentes abaixo ).

 

Enfim... espero que ajude.

Até mais, bom domingo! :smile:

 

Muito obrigada! O seu exemplo me ajudou muitoooo!  Agora está funcionando normalmente! 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.