Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
mostre como você tentou começar a fazer.
se deu algum erro, poste qual.
Eu nem comecei.. nem sei como começar =/
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.
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
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>
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!!!
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
mostre como você tentou começar a fazer.
se deu algum erro, poste qual.