Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu havia postado uma outra dúvida no tópico anterior, mas foi fechado como [RESOLVIDO].
Então estou abrindo outro, pois a dúvida é diferente.
O Willian me ajudou com um select pra verificar se um cod é válido, deu certinho.
Agora precisaria fazer outra busca logo depois desse select.
Pra entender melhor, vejam:
<?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."'";
//Select na table cadastros onde o codigo é igual a txtCodigo
$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['txtCodigo']}";
$query = mysql_query( $sql )or die( mysql_error() );
if( mysql_num_rows( $query ) ){
//se for igual, então o cod é valido e iria buscar na table cadastros e verificar se o campo cadastrado é vazio
$sql2 = "SELECT * FROM cadastros WHERE cadastrado = false"; //Pensei nisso, não sei se é correto
//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
}
Só que falta o seguinte, se o código é inválido, então precisaria retornar um valor.
Seria a seguinte lógica:
Se o cod não é válido, retorna "cod não é válido"
Se o cod é válido, faz a segunda busca no campo "cadastrado" e verifica se é vazio
Se for vazio, cadastra um SIM nele e cadastra o resto dos dados.
Se não for vazio, retorna "você já foi cadastrado"
Seria um if dentro de outro if??
To perdidinha nessa lógica..
Bom, queimei o tico e o teco e ficou assim:
[code
<?php
session_start();
mysql_connect('localhost','root','root') or die ("Erro de conexão");
mysql_select_db('doces');
$codigo = $_POST['txtCodigo'];//campo onde o user vai inserir o cod
$pedido = $_POST['txtPedido'];//pedido do user
$cadastrado = $_POST['txtCadastrado'];//campo hidden no form com o value='SIM'
$tabela = "cadastros";
$valores = "NULL,'".$pedido."','".$cadastrado."'";
$sql = "SELECT * FROM cadastros WHERE codigo = {$_POST['txtCodigo']}";
$query = mysql_query( $sql )or die( mysql_error() );
if( mysql_num_rows( $query ) ){
//Se o cod for igual ao que está no banco, então o cod é válido e faz a busca no campo 'cadastrado' verificando se contém um SIM lá.
$sql2 = "SELECT * FROM cadastros WHERE cadastrado = {$_POST['txtCadastrado']}";
}else{
//Se o cod não for igual, então não é válido e retorna um echo
echo ("O COD Não é válido");
}
//Verifica a segunda busca
$query2 = mysql_query( $sql2 )or die( mysql_error() );
//Se o campo 'cadastrado' for vazio, grava os dados e retorna outro echo
if( mysql_num_rows( $query2 ) ){
mysql_query("insert into cadastros values(".$valores.")");
echo ("Seu pedido foi enviado!");
}else{
//se o campo não for vazio, então o usuário já foi cadastrado e retorna outro echo
echo ("Você já se cadastrou!");
}
?>Bom, o que não está dando certo é a consulta no campo "cadastrado" pra ver se tem um SIM lá.
Está retornando se o cod for inválido, mas se o cod for válido e o campo cadastrado tiver um SIM lá, não retorna nada
Esse segundo select que não estou acertando =/
Onde estou errando??
Carregando comentários...