Ir para conteúdo

POWERED BY:

Arquivado

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

Amanda_Flor

[Resolvido] SELECT verificar se já existe cadastro

Recommended Posts

Bom, vamos lá...

 

Preciso fazer um SELECT no banco e to meio encucada como fazer rs.

 

Tenho um banco com uns dados pré cadastrados: ID, nome e e-mail.

No banco além dessas 3 colunas terá uma outra: pedido.

 

Tenho um form com um campo "pedidos" e outro campo "COD"

o usuário irá escrever um pedido e depois irá inserir um COD no campo, ao clicar em enviar

tem de ser feito um SELECT no banco verificando se o COD é válido.

 

o select vai percorrer a coluna ID e comparar o COD digitado pelo usuário.

Se for válido, cadastra os dados do pedido e retorna o nome do usuário contido na coluna "nome".

Se não for válido, retorna uma mensagem "Cod inválido"

Se for válido, mas já tiver sido cadastrado o pedido, retorna outra mensagem "Pedido já cadastrado"

 

Alguém pode me ajudar com esse SELECT?

To perdidinha.. rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostre como você tentou começar a fazer.

 

se deu algum erro, poste qual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

começa pelo html. Sabe fazer?

 

tem de ser feito um SELECT no banco verificando se o COD é válido.

basicamente é só:

$sql = "SELECT * FROM tabela WHERE id = {$_POST['cod']}";
$query = mysql_query( $sql )or die( mysql_error() );
if( mysql_num_rows( $query ) ) echo 'Esse pedido existe!';
else echo 'Não existe!';

fiz um SELECT na tabela `tabela` procurando um ID que seja igual ao que o usuario escreveu num campo com name="cod"

por isso o WHERE.

 

Qual é a tua dúvida? procure ser mais específica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o exemplo montei o seguinte:

 

<?php 
session_start();

mysql_connect('localhost','root','root') or die ("Erro de conexão");
mysql_select_db('banco');

//recuperando variáveis do form
$codigo = $_POST['txtCodigo']; 
$nome = $_POST['txtNome'];
$email = $_POST['txtEmail'];
$pedido = $_POST['txtPedido'];

$tabela = "cadastros";

//valores dos campos na tabela
$valores = "NULL,'".$codigo."','".$nome."','".$email."','".$pedido."'";


$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['codigo']}";
$query = mysql_query( $sql )or die( mysql_error() );

	if( mysql_num_rows( $query ) ){
		echo 'Codigo válido!';
		}
		else
		{
		echo 'Código não é válido!';
	}

?>

Mas deu o seguinte erro:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca:

$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['codigo']}";
por:

$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['txtCodigo']}";

note que você deveria ter arrumado a chave ali do POST

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca:

$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['codigo']}";
por:

$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['txtCodigo']}";

note que você deveria ter arrumado a chave ali do POST

 

 

=/ falta de atenção rs.

Agora deu certinho!! Brigadinhaaaaa!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, talvez você possa me tirar uma dúvida..

Veja só, fiz assim:

 

<?php 
session_start();

mysql_connect('localhost','root','root') or die ("Erro de conexão");
mysql_select_db('doces');

$codigo = $_POST['txtCodigo']; 
$nome = $_POST['txtNome'];
$email = $_POST['txtEmail'];
$pedido = $_POST['txtPedido'];

$tabela = "cadastros";

$valores = "NULL,'".$codigo."','".$nome."','".$email."','".$pedido."'";

$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['txtCodigo']}";
$query = mysql_query( $sql )or die( mysql_error() );

	if( mysql_num_rows( $query ) ){
		echo ("&valido=0&"); //retornando valor para o flash		
		mysql_query("insert into cadastros values(".$valores.")");
		
		}else{
		
		echo ("&valido=1&"); //retornando valor para o flash
	}
  
?>

 

Está retornando certinho.

Agora, se o cod for válido, teria de fazer outra busca no BD pra ver se o campo cadastrado é vazio, então pensei nisso:

$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['txtCodigo']}";
$query = mysql_query( $sql )or die( mysql_error() );

	if( mysql_num_rows( $query ) ){
                
                $sql2 = "SELECT * FROM cadastros WHERE cadastrado = false"; //outra busca no banco
		
                //se for vazio, grava SIM no campo, grava os outros dados e retorna o valor para o flash
		
		mysql_query("insert into cadastros values(".$valores.")");// gravando outros dados
                echo ("&valido=0&"); //retornando valor para o flash
		
		}else{

                //se o campo não for vazio, se tiver algo nele, retorna um valor para o flash e não cadastra os outros dados.
		
		echo ("&valido=1&"); //retornando valor para o flash
	}

Fiquei meio confusa nesse segundo select.. perdidinha rs

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.