Ir para conteúdo

POWERED BY:

Arquivado

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

juliaa

Problema com select php + mysql

Recommended Posts

Boa Tarde, não sei se já existe um tópico desses por aqui, mas eu não encontrei a resposta nas pesquisas do google.

Meu problema é o seguinte.

 

Pego um dado do banco e adiciono no select do html

" <select name="nomeusuario">
<option value="vazio"> </option>

<?php
$sql = "select nome from usuario;";
$result = mysqli_query($conexao, $sql);

while($linha = mysqli_fetch_assoc($result)):
?>
<option value=" <?php echo $linha['nome']; ?> "> <?php echo $linha['nome']; ?> </option>
<?php endwhile; ?>

</select>"

 

ele recupera esse dado corretamente no php:

"$nome = $_POST['nomeusuario'];"

 

porém no momento em que vou recuperar outo dado pelo mysql utilizando esse dado da variável do php ele não me retorna nada, nem um erro, nem a resposta. Quando adiciono o valor que está no banco ele retorna o valor, mas não funciona com a variável.

 

//pegar matricula
$query_matricula = mysqli_query($conexao,"SELECT matricula FROM usuario where nome = '$nome'") or die("ERROR" .mysqli_error());
$row = mysqli_fetch_assoc($query_matricula);
$numero_matricula = $row['matricula'];
echo $row['matricula'];

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde, não sei se já existe um tópico desses por aqui, mas eu não encontrei a resposta nas pesquisas do google.

Meu problema é o seguinte.

 

porém no momento em que vou recuperar outo dado pelo mysql utilizando esse dado da variável do php ele não me retorna nada, nem um erro, nem a resposta. Quando adiciono o valor que está no banco ele retorna o valor, mas não funciona com a variável

 

Postando código do php completo:

 

<?php
ob_start();
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);

include("executa.php");
include("conecta.php");

$datacoleta = $_POST['datacoleta'];
$nome = $_POST['nomeusuario'];
$id_estabelecimento = $_POST['nomeestabelecimento'];
$id_projeto = $_POST['nomeprojeto'];

//transforma a data da coleta
$dtransf = explode("/", $datacoleta);
$data = "$dtransf[2]-$dtransf[1]-$dtransf[0]";
//echo $data;

echo $nome;

//pegar matricula
$query_matricula = mysqli_query($conexao,"SELECT matricula FROM usuario where nome = '$nome'") or die("ERROR" .mysqli_error());
$row = mysqli_fetch_assoc($query_matricula);
$numero_matricula = $row['matricula'];
echo $row['matricula'];


?>

 

 

Código do html:

<html>

<form name="formColeta" method="post" action="cadastrar_dia_coleta.php">

<select name="nomeusuario">
<option value=""> </option>

<?php
$sql = "select nome from usuario;";
$result = mysqli_query($conexao, $sql);

while($linha = mysqli_fetch_assoc($result)):
?>
<option value=" <?php echo $linha['nome']; ?> "> <?php echo $linha['nome']; ?> </option>
<?php endwhile; ?>

</select>

</form>

</html

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi.. tente dar um submit no select;

1 bem simples:

<select name="nomeusuario" onchange="submit(nomeusuario.value)">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fernando, tentei adicionar o sobmit, porém continua com o mesmo erro. a váriavel está pegando o valor do select corretamente, mas na hora de comparar com o banco de dados ela não reconhece como se fosse igual.

 

dessa foma funciona

//pegar matricula
$query_matricula = mysqli_query($conexao,"SELECT matricula FROM usuario where nome = 'Maria'") or die("ERROR" .mysqli_error());
$row = mysqli_fetch_assoc($query_matricula);
$numero_matricula = $row['matricula'];
echo $row['matricula'];

 

dessa forma não funciona

//pegar matricula
$query_matricula = mysqli_query($conexao,"SELECT matricula FROM usuario where nome = '$nome'") or die("ERROR" .mysqli_error());
$row = mysqli_fetch_assoc($query_matricula);
$numero_matricula = $row['matricula'];
echo $row['matricula'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi.. tem razão.. testei aqui e deu esse "bug" também..
(não uso mysqli, prefiro PDO pq é independente do SGBD).

bom, se ainda n resolveu, 1 solução q encontrei foi recuperar os ids E os nomes da tabela na 1ª sql e passar o "id" como parâmetro na 2ª sql..

a 1ª sql fica assim:

$sql = "select id, nome from usuario;";

select:

<option value=" <?php echo $linha['id']; ?>  "> <?php echo $linha['nome']; ?> </option>

2ª sql:

$query_matricula = mysqli_query($conexao,"SELECT matricula FROM usuario where id = '$nome'") or exit(mysqli_error($conexao));

sugiro que aproveite e troque a mensagem de erro; essa q postei é melhor,
retirada daqui:
http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei utilizar uma função para tratar espaços em branco nos valores vindos do banco de dados e funcionou, adicionai o : $nome_projeto = trim($_POST['nomeprojeto']);

 

obrigada pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fernando, tentei adicionar o sobmit, porém continua com o mesmo erro. a váriavel está pegando o valor do select corretamente, mas na hora de comparar com o banco de dados ela não reconhece como se fosse igual.

 

dessa foma funciona

//pegar matricula

$query_matricula = mysqli_query($conexao,"SELECT matricula FROM usuario where nome = 'Maria'") or die("ERROR" .mysqli_error());

$row = mysqli_fetch_assoc($query_matricula);

$numero_matricula = $row['matricula'];

echo $row['matricula'];

 

dessa forma não funciona

//pegar matricula

$query_matricula = mysqli_query($conexao,"SELECT matricula FROM usuario where nome = '$nome'") or die("ERROR" .mysqli_error());

$row = mysqli_fetch_assoc($query_matricula);

$numero_matricula = $row['matricula'];

echo $row['matricula'];

Faz assim, coloca a string da query pra uma variável concatenando com a variável utilizada na consulta ex:

$query = "SELECT matricula FROM usuario where nome = ' " . $nome . " ' ; " ;

Depois vc executa a query com o mysqli_query:

$query_matricula = mysqli_query($conexao,$query);

 

Acreito que vai funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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