Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Estou usando a função case do php, mas ela está fazendo somente uma verificação, e eu gostaria que ela fizesse mais de uma, no minimo 3 verificações anbtes de lançar os dados no banco de Dados Mysql.
Vou postar o caodigo, se alguem puder me ajudar.
No codigo abaixo, ele verifica apenas a ultima opção, deixando as 2 primeiras sem verificar, é como se ele passase direto pelas duas primeiras e verificasse apenas a 3º.
$action = $_GET['action'];
/Seleciona a ação/
switch ("$action") {
/Caso a ação seja Cadastrar/
case 'cadastrar':
/Procuramos por usuários com o mesmo nome vindo do Flash/
$verifica1 = "SELECT * FROM cadastro WHERE cpf = '$cpf'";
$teste1 = mysql_query($verifica1) or die ("Ops, deu Erro!!!");
$vai1 = mysql_num_rows($teste1);$verifica2 = "SELECT * FROM cadastro WHERE mini2 = '$mini2'";
$teste2 = mysql_query($verifica2) or die ("Ops, deu Erro!!!");
$vai2 = mysql_num_rows($teste2);$verifica3 = "SELECT * FROM cadastro WHERE mini1 = '$mini1'";
$teste3 = mysql_query($verifica3) or die ("Ops, deu Erro!!!");
$vai3 = mysql_num_rows($teste3);Olá Willian,
No Caso eu tenho somente um 'case' no codigo, eu não postei o codigo inteiro, mas no final dele existe um break para parar a função.
O que eu queria é que dentro desse um 'case', ele fizesse 3 verificações, como está lá no codigo, mas isso não está ocorrendo, ele somente faz a ultima verificação.
então o problema não é o case, mas os teus ifs !
indente corretamente o código, e repense nessa logica.
eles são 'excludentes'?
então use else if
sinceramente eu não entendi a logica que você tentou usar.. pq testar assim com == o retorno do num_rows(), não faz muito sentido.
Olá William,
Quanto testar o retorno do num_rows(), eu coloquei ==, porque quando colocava somente o = por algum motivo não estava dando certo, ai com == ele verifica normalmente, como te falei essa verificação com somente 1 retorno no num_rows() funciona certinho, o negocio é quando coloco para ele verificar mais de uma vez.
Tipo, primeiro é para o php verificar se o cpf que está tentando se cadastrar já não se encontra cadastrado, caso ele esteja cadastrado ele manda uma mensagem, caso não esteja, ele deveria verificar se o numero de vagas para 1 curso se já esteja excedida, e depois ele verifica a mesma coisa para o outro curso, caso não esteja excedidas as vagas, ele faz o cadastro, ou retorna uma menagem falando que a vagas estão excedidas.
Ahh, refiz o codigo abaixo, mas se eu coloco o else if no lugar do if, ele da erro.
switch ("$action") {
/Caso a ação seja Cadastrar/
case 'cadastrar':
/Procuramos por usuários com o mesmo nome vindo do Flash/
$verifica1 = "SELECT * FROM cadastro WHERE cpf = '$cpf'";
$teste1 = mysql_query($verifica1) or die ("Ops, deu Erro!!!");
$vai1 = mysql_num_rows($teste1);$verifica2 = "SELECT * FROM cadastro WHERE mini1 = '$mini1'";
$teste2 = mysql_query($verifica2) or die ("Ops, deu Erro!!!");
$vai2 = mysql_num_rows($teste2);
if ($vai2 == 30){$verifica3 = "SELECT * FROM cadastro WHERE mini2 = '$mini2'";
$teste3 = mysql_query($verifica3) or die ("Ops, deu Erro!!!");
$vai3 = mysql_num_rows($teste3);
else if ($vai3 == 30){print utf8_encode("&mensagem=Cadastro Efetuado com Sucesso, foi enviado um e-mail para $mail com as instruções para pagamento.");
}
break;Alguém poderia me ajudar?
Olá,
Alguem???
Abraços
Pengo
Não sei se consigo te ajudar ... + nesse seu segundo código você começou com .. ELSE IF ??? tem que começar com o if - depois else if - depois else if - por ultimo else ..
Veja se é isso !
Outra coisa que você deve fazer é veriificar oq está sendo impresso na variável $vai1, imprime ela na tela pra ver o valor que ela ta retornando .. deve ta caindo no ELSE pq o valor deve ta chegando diferente do que você colocou nos IF`s.
valeu
EDIT? Oq tem depois desse case ?? outro case ??
E ae conseguiu resolver??
repensando a sua lógica pq você nao pega oq vem no seu action e com um IF compara com 'cadastrar' .. dai se cair no IF você atribui valores aquelas variaves = vai1 - verefica1 e teste1 ? Ai depois se faz o SWITCH com $vai1 == 01 .. $vai2 == 30 e as outras variaveis ..
http://www.php.net/manual/en/control-structures.switch.php
coloque um break; após o código do case atual, antes de iniciar outro.