Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Pimentel

Como fazer busca por ID no mysql?

Recommended Posts

Pessoal estou desenvolvendo um sistema de entrada e saída de veiculos da empresa, no index fiz 2 inputs um de `entrada` e outro `saída`, quando clico em entrada aparece a tela de cadastro do veiculo como `placa, nome do motorista, data da entrada e hora da entrada`, quando clica em inserir eu coloquei pra gerar um protocolo que puxa do `id`.
Com a saída do veículo eu estava sem ideia, daí resolvi fazer o seguinte, Quando o veiculo for sair da empresa, o operador do sistema clica em saída e aparace um botão procurar, daí eu coloco o protocolo e aparece a placa do motorista e o nome do mesmo, não estou conseguindo fazer o sistema de procurar por id, segue abaixo o código da entrada:
 if (isset($_POST["enviar"])) {

    $placa      = isset($_POST["placa"]) ? $_POST["placa"] : '';
    $nome       = isset($_POST["nome"]) ? $_POST["nome"] : '';
    $dataentrada  = isset($_POST["dataentrada"]) ? $_POST["dataentrada"] : '';
    $horaentrada  = isset($_POST["horaentrada"]) ? $_POST["horaentrada"] : '';
    $observacao = isset($_POST["observacao"]) ? $_POST["observacao"] : '';
    $id = "id";

    $sql  = "INSERT INTO entrada(placa,nome,dataentrada,horaentrada,observacao) VALUES('$placa','$nome','$dataentrada','$horaentrada','$observacao')";
    $resultado = mysql_query($sql);

    $sql1 = mysql_query("SELECT * FROM entrada");
    $resultado1 = mysql_fetch_array($sql1) or die (mysql_error());

    echo ('<center> <b>
    Usuário cadastrado com sucesso!
          </b> <br />
    Seu protocolo é: #' . $resultado1["id"] . ' </center>'); } ?>

<B>CÓDIGO DO HTML DA ENTRADA</B>

    <form action="" method="post">
    Placa:                       <input type="text" name="placa" /> <br />
    Nome do Condutor (0pcional): <input type="text" name="nome" /> <br />
    Data de Entrada:             <input type="date" name="dataentrada" /> <br />
    Hora Entrada:                <input type="time" name="horaentrada" /> <br />
    Observação:                  <textarea name="observacao" cols="30"> </textarea> <br />
    <input type="submit" name="enviar" value="Registrar" />

Ajudem-me!! rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, parece simples de ser feito se compreendi bem, vou criar aqui um script genérico e você vê se ele serve:

$protocolo = $_POST['protocolo'];

$query = mysql_query("SELECT * FROM tabela WHERE protocolo = '$protocolo'");

while ($dados = mysql_fetch_assoc($query)){

 echo $dados['Nomedocarro'];
 echo $dados['Cordocarro'];

}

No caso ali, o nome do carro ou a cor são variáveis que você decide quais serão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, parece simples de ser feito se compreendi bem, vou criar aqui um script genérico e você vê se ele serve:

$protocolo = $_POST['protocolo'];

$query = mysql_query("SELECT * FROM tabela WHERE protocolo = '$protocolo'");

while ($dados = mysql_fetch_assoc($query)){

 echo $dados['Nomedocarro'];
 echo $dados['Cordocarro'];

}

No caso ali, o nome do carro ou a cor são variáveis que você decide quais serão.

 

Vou testar agora.

 

Vou testar agora.

<?php
include ("config.php");

$id = isset($_POST['id']);

$query = mysql_query("SELECT * FROM entrada WHERE id = '$id'");

while ($dados = mysql_fetch_assoc($query)){

 echo $dados['placa'];
 echo $dados['nome'];

}


?>

<form action="" method="post" name="id">
<input name="id" type="text" />
<input name="enviar" type="submit" />

</form>

Amigo fiz desse jeito, porem o que preciso é que procure por o id que é o protocolo, mas não tem que ser o ultimo inserido e sim qualquer um que eu inserir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de ver a saída, você tem que rever o código de entrada de dados.

 

1 - você está definindo um valor string (texto) para a variável "id" aqui ó: $id = "id", posta aí a estrutura mysql da sua tabela "entrada";

2 - defina um "WHERE" aqui: $sql1 = mysql_query("SELECT * FROM entrada");

3 - $resultado1 = mysql_fetch_array($sql1) or die (mysql_error()); Você está criando um array, mas usa um resultado só... acho que seria melhor fetch_row

 

depois a gente ve a saída daí :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de ver a saída, você tem que rever o código de entrada de dados.

 

1 - você está definindo um valor string (texto) para a variável "id" aqui ó: $id = "id", posta aí a estrutura mysql da sua tabela "entrada";

2 - defina um "WHERE" aqui: $sql1 = mysql_query("SELECT * FROM entrada");

3 - $resultado1 = mysql_fetch_array($sql1) or die (mysql_error()); Você está criando um array, mas usa um resultado só... acho que seria melhor fetch_row

 

depois a gente ve a saída daí :)

1 = ESTRUTURA


Coluna	Tipo	Nulo	Predefinido	Comentários	MIME
id	int(11)	Não 	 	 	 
placa	varchar(255)	Não 	 	 	 
nome	longtext	Não 	 	 	 
dataentrada	date	Não 	 	 	 
horaentrada	time	Não 	 	 	 
datasaida	date	Não 	 	 	 
horasaida	time	Não 	 	 	 
observacao	varchar(3300)	Não 

2 = Excluir essa linha pois retirei o select e definir com um mysql_insert_id() no insert.

 

3 = A mesma coisa de cima, excluir a linha

 

Thanks'

Compartilhar este post


Link para o post
Compartilhar em outros sites

A query abaixo esta correta.

$query = mysql_query("SELECT * FROM entrada WHERE id = '$id'");

Como id é aceita inteiros força a variável $id a aceitar somente inteiros.

$id = (int) $_POST['id'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

A query abaixo esta correta.

$query = mysql_query("SELECT * FROM entrada WHERE id = '$id'");

Como id é aceita inteiros força a variável $id a aceitar somente inteiros.

$id = (int) $_POST['id'];

De onde tiraste esse cód? rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve o código abaixo em uma pagina com o nome teste.php e faz um teste ai.

OBS: coloquei o arquivo config.php na mesma pasta.

<?php
include ("config.php");

if (!empty($POST)) {

	include ("config.php");
	$id = (int) $_POST['id'];
	$query = mysql_query("SELECT * FROM entrada WHERE id = '$id'");
	$dados = mysql_fetch_assoc($query);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Teste</title>
</head>
<body>

<form action="teste.php" method="post">
	<input name="id" type="text" />
	<input name="enviar" type="submit" />
</form>

<p>
	<?php 
	if (!empty($POST)) {
		if (!empty($dados)) {
			echo "<p>Placa: ".$dados['placa']."</p>";
			echo "<p>Nome: ".$dados['nome']."</p>";
			echo "<p>Protocolo: ".$id."</p>";
		} else {
			echo "Nenhum registro foi encontrado com o id: <b>$id</b>!";
		}
	}
	?>
</p>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Salve o código abaixo em uma pagina com o nome teste.php e faz um teste ai.

OBS: coloquei o arquivo config.php na mesma pasta.

<?php
include ("config.php");

if (!empty($POST)) {

	include ("config.php");
	$id = (int) $_POST['id'];
	$query = mysql_query("SELECT * FROM entrada WHERE id = '$id'");
	$dados = mysql_fetch_assoc($query);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Teste</title>
</head>
<body>

<form action="teste.php" method="post">
	<input name="id" type="text" />
	<input name="enviar" type="submit" />
</form>

<p>
	<?php 
	if (!empty($POST)) {
		if (!empty($dados)) {
			echo "<p>Placa: ".$dados['placa']."</p>";
			echo "<p>Nome: ".$dados['nome']."</p>";
			echo "<p>Protocolo: ".$id."</p>";
		} else {
			echo "Nenhum registro foi encontrado com o id: <b>$id</b>!";
		}
	}
	?>
</p>

</body>
</html>

Amigo não dar nada, eu clico em ENVIAR e nao busca, continua em branco!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops erro meu de digitação no lugar de $POST é $_POST segue abaixo o correto.

<?php
@include ("config.php");

if (!empty($_POST)) {

	include ("config.php");
	$id = (int) $_POST['id'];
	$query = mysql_query("SELECT * FROM entrada WHERE id = '$id'");
	$dados = mysql_fetch_assoc($query);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Teste</title>
</head>
<body>

<form action="teste.php" method="post">
	<input name="id" type="text" />
	<input name="enviar" type="submit" />
</form>

<p>
	<?php 
	if (!empty($_POST)) {
		if (!empty($dados)) {
			echo "<p>Placa: ".$dados['placa']."</p>";
			echo "<p>Nome: ".$dados['nome']."</p>";
			echo "<p>Protocolo: ".$id."</p>";
		} else {
			echo "Nenhum registro foi encontrado com o id: <b>$id</b>!";
		}
	}
	?>
</p>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Ops erro meu de digitação no lugar de $POST é $_POST segue abaixo o correto.

<?php
@include ("config.php");

if (!empty($_POST)) {

	include ("config.php");
	$id = (int) $_POST['id'];
	$query = mysql_query("SELECT * FROM entrada WHERE id = '$id'");
	$dados = mysql_fetch_assoc($query);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Teste</title>
</head>
<body>

<form action="teste.php" method="post">
	<input name="id" type="text" />
	<input name="enviar" type="submit" />
</form>

<p>
	<?php 
	if (!empty($_POST)) {
		if (!empty($dados)) {
			echo "<p>Placa: ".$dados['placa']."</p>";
			echo "<p>Nome: ".$dados['nome']."</p>";
			echo "<p>Protocolo: ".$id."</p>";
		} else {
			echo "Nenhum registro foi encontrado com o id: <b>$id</b>!";
		}
	}
	?>
</p>

</body>
</html>

Puta merda cara, você está de parabens, rsrs, tentei a 2 dias e não conseguir, deu certãooo *-*

Vamos dificultar um pouco, é o seguinte, agora que conseguimos fazer isso, minha ideia seria a seguinte, quando clicasse no SAÍDA que fica no index, aparecesse 3 inputs PROTOCOLO , datasaida e horasaida, quando a pessoa digitasse o PROTOCOLO automaticamente aparecesse os dados correspondente ao protocolo caso exista, dai a pessoa só digita a datasaida e horasaida, pra a pessoa ter certeza de que o protocolo bate com a pessoa que ela quer por a saída, aparece a placa abaixo do protocolo, e abaixo os inputs de saídas. Deu pra entender? rs

Compartilhar este post


Link para o post
Compartilhar em outros sites
Coluna	Tipo	Nulo	Predefinido	Comentários	MIME
id	int(11)	Não 	 	 	 
placa	varchar(255)	Não 	 	 	 
nome	longtext	Não 	 	 	 
dataentrada	date	Não 	 	 	 
horaentrada	time	Não 	 	 	 
datasaida	date	Não 	 	 	 
horasaida	time	Não 	 	 	 
observacao	varchar(3300)	Não 

longtext para um nome, deixa eu ver um calculo aqui!

 

Type | Maximum length

-----------+-------------------------------------

TINYTEXT | 255 (2 8−1) bytes

TEXT | 65,535 (216−1) bytes = 64 KiB

MEDIUMTEXT | 16,777,215 (224−1) bytes = 16 MiB

LONGTEXT | 4,294,967,295 (232−1) bytes = 4 GiB

 

 

isso: 4,294,967,295 :assobiando:

 

 

http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html

 

Máximo para o nome seria um varchar (96) ou valor da placa,

 

 

placa varchar(255), uma placa de carro tem espaço para 255 caracteres, quantos caracteres tem essa placa?

 

Se o você esta usando 255 para uma placa, pelo meus calculos a observação teria de ser TEXT,

 

Veja um calculo simples:

 

TINYTEXT 255 (+1 byte overhead)
TEXT 64K - 1 (+2 bytes overhead)
MEDIUMTEXT 16M - 1 (+3 bytes overhead)
LONGTEXT 4G - 1 (+4 bytes overhead)

 

overhead = sobrecarga

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

longtext para um nome, deixa eu ver um calculo aqui!

 

 

isso: 4,294,967,295 :assobiando:

 

 

http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html

 

Máximo para o nome seria um varchar (96) ou valor da placa,

 

 

placa varchar(255), uma placa de carro tem espaço para 255 caracteres, quantos caracteres tem essa placa?

 

Se o você esta usando 255 para uma placa, pelo meus calculos a observação teria de ser TEXT,

 

Veja um calculo simples:

 

overhead = sobrecarga

 

Cara eu deixei para me preocupar em organizar com o sql no final, relaxe que isso ai irei tratar ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Relaxe que não é para você, pois sei que um bom programador faz todo a codificação de script primeiro e só depois ele vem corrigindo a estrutura de um banco de dados. :pinch:

 

É para os que caírem neste post no futuro, e vê essa modelagem errada, e acha que está certa, pois ou autor do tópico vai corrigir a bagaça no final. :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Relaxe que não é para você, pois sei que um bom programador faz todo a codificação de script primeiro e só depois ele vem corrigindo a estrutura de um banco de dados. :pinch:

 

É para os que caírem neste post no futuro, e vê essa modelagem errada, e acha que está certa, pois ou autor do tópico vai corrigir a bagaça no final. :clap:

Vlw amigo, obrigado ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Boa Tarde! Tente assim:

<?php
include ("config.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Teste</title>
</head>
<body>

<form action="" method="post">
 <p>Protocolo <input name="protocolo" type="text" placeholder="Digite Aqui" autofocus/></p>
</form>
 <?php
 if(isset($_POST['protocolo'])){
  $protocolo = $_POST['protocolo'];
  $query = mysql_query("SELECT * FROM entrada WHERE id = '$protocolo'");
  $dados = mysql_fetch_array($query);
  if($dados['datasaida'] and $dados['horasaida'] == null){
   echo "Impossivel inserir registro de saída, registro inserido antes!";
  }
  else{
   echo "<p><b>Placa </b>".$dados['placa']."</p>";
   echo "<form method='post' action=''><p><input type='date' name='data-saida'></p>";
   echo "<p><input type='time' name='hora-saida'></p><p><input type='submit' value='Registrar Saída' name='bot'></p></form>";
   if(isset($_POST['bot'])){
    $data_saida = $_POST['data-saida'];
    $hora_saida = $_POST['hora-saida'];
    $sql = mysql_query("UPDATE  entrada SET datasaida = '$data_saida', horasaida = '$hora_saida' WHERE id = '$protocolo'");
    if($sql == true){
     echo "Registro de Saída inserido com Sucesso!"; 
    }
    else{
     echo "Erro ao inserir Registro! Detalhes ".mysql_error(); 
    }
   }
  }
 }
 ?>
</body>
</html>

Espero ter Ajudado ;)

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.