Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
--->>> RESOLVIDO <<<---
Boa tarde galera, estou com um problema em meu código...Estou fazendo um IF para selecionar apenas 1 campo mas está dando problema...
Se alguem puder me ajudar agradeço...
Abaixo segue o código...
CODE
<?php//atribui o valor dos campos da página nas variáveis mencionadas
if (isset($_GET["acao"]) && $_GET["acao"]=="cadastrar"){
$empresa1 = $_POST['empresa1'];
$empresa2 = $_POST['empresa2'];
$cargo1 = $_POST['cargo1'];
$cargo2 = $_POST['cargo2'];
$datainicio = $_POST['datainicio'];
$datafim = $_POST['datafim'];
//valida empresa e cargo
if ((($empresa1 == "") && ($empresa2 == "")) || (($empresa1 != "") && ($empresa2 != ""))) {
$mensagem = "Preencha apenas 1 dos campos para Empresa.";
echo "<script>alert('". $mensagem . "');</script>";
}
else{
if ((($cargo1 == "") && ($cargo2 == "")) || (($cargo1 != "") && ($cargo2 != ""))) {
$mensagem = "Preencha apenas 1 dos campos para Cargo.";
echo "<script>alert('". $mensagem . "');</script>";
}
//valida as datas
if ((checkData($datainicio)) && (checkData($datafim))){
//converte a data inicial (dataini) para o formato do banco
$datainicio = converte_data($datainicio);
//converte a data final (datafim) para o formato do banco
$datafim = converte_data($datafim);
//cria a sql para inserir no banco de dados
$sql1 = "INSERT INTO EXPERIENCIAS (expdatainicio,expdatafim)";
$sql1.="VALUES ('".$datainicio."','".$datafim."')";
$sql2 = "INSERT INTO EMPRESAS (empempresa)";
$sql2.="VALUES ('".$empresa2."')";
$sql3 = "INSERT INTO CARGOS (carcargo)";
$sql3.="VALUES ('".$cargo2."')";
//grava os dados no banco, ou imprime erro
$resultado = ibase_query($conexao,$sql1) or die ("Impossível gravar os dados");
$resultado = ibase_query($conexao,$sql2) or die ("Impossível gravar os dados");
$resultado = ibase_query($conexao,$sql3) or die ("Impossível gravar os dados");
//envia commit e fecha a conexão com o banco de dados
ibase_commit($conexao);
ibase_close($conexao);
}else { //fecha checkData.
$mensagem = "Data Início ou Data Fim Inválido. Corrija por favor.";
echo "<script>alert('". $mensagem . "');</script>";
}
} //fecha if ((($empresa1 == "") && ($empresa2 == "")) || (($empresa1 != "") && ($empresa2 != ""))) {...
} //fecha if (isset($_GET["acao"]) && $_GET["acao"]=="cadastrar"){...
?>
Nesta parte do código que estou enfrentando problemas:
//valida empresa e cargo
if ((($empresa1 == "") && ($empresa2 == "")) || (($empresa1 != "") && ($empresa2 != ""))) {
$mensagem = "Preencha apenas 1 dos campos para Empresa.";
echo "<script>alert('". $mensagem . "');</script>";
}
else{
if ((($cargo1 == "") && ($cargo2 == "")) || (($cargo1 != "") && ($cargo2 != ""))) {
$mensagem = "Preencha apenas 1 dos campos para Cargo.";
echo "<script>alert('". $mensagem . "');</script>";
}1º- até onde saiba "||" é iguala "&&"!
2ª - não saibia que poderia usar if dentro de else
----->>>>>>
else{
if ((($cargo1 == "") && ($cargo2 == "")) || (($cargo1 != "") && ($cargo2 != ""))) {
$mensagem = "Preencha apenas 1 dos campos para Cargo.";
echo "<script>alert('". $mensagem . "');</script>";
}
------->>>>>>
em vez de usar if dentro de else use ifelse(){}<<<<---serve para que se o if anterior não for satisfeito ele executa uma nova condição depois pode-se usar else{}!
no trecho a seguir faça assim:
if ($empresa1 == "" && $empresa2 == "" && $empresa1 != "" && $empresa2 != "") {
$mensagem = "Preencha apenas 1 dos campos para Empresa.";
echo "<script>alert('". $mensagem . "');</script>";
}
o resto é com você!
>
1º- até onde saiba "||" é iguala "&&"!
2ª - não saibia que poderia usar if dentro de else
----->>>>>>
else{
if ((($cargo1 == "") && ($cargo2 == "")) || (($cargo1 != "") && ($cargo2 != ""))) {
$mensagem = "Preencha apenas 1 dos campos para Cargo.";
echo "<script>alert('". $mensagem . "');</script>";
}
------->>>>>>
em vez de usar if dentro de else use ifelse(){}<<<<---serve para que se o if anterior não for satisfeito ele executa uma nova condição depois pode-se usar else{}!
no trecho a seguir faça assim:
if ($empresa1 == "" && $empresa2 == "" && $empresa1 != "" && $empresa2 != "") {
$mensagem = "Preencha apenas 1 dos campos para Empresa.";
echo "<script>alert('". $mensagem . "');</script>";
}
o resto é com você!
Teste você mesmo amigo:
$a=1;
$b=2;
if($a == 2){
echo "A é igual a 2";
}else{
if(($a == 1) and ($b==2)){
echo "A é igual a 1 e b é igual a 2";
}
}Abraços.1º- até onde saiba "||" é iguala "&&"!
|| quer dizer "ou" e não "e"...
Jonata...
Se eu usar && ao invez de ||, meu codigo vai ser...
if ($a1 == 1 && $a2 == 1 && $a1 != 1 && $a2 != 1) {...........
Mas como é que a a varivel a1 vai ser 1, e ao mesmo tempo vai ser diferente de de 1...????...
Isso não existe...
E em relação ao ......else { if......ou ifelse......eu não sei qual está correto pois eu sou programador delphi e estou começando a programar em php...Poderiam me indicar o correto???
_________________________________
The Cod, não está dando erro, mas não está fazendo o que eu preciso...
Seguinte eu tenho dois campos para cada variavel ($empresa1, $empresa2)...
O teste tem que ser assim:
Se o primeiro campo e o segundo campo, forem = " " ...Então exibe a mensagem para digitar em algum campo....
Se o primeiro campo e o segundo campo, forem != " " ...Então exibe a mensagem para digitar em apenas um campo...
Entendeu???
Se puderem me ajudar com esse problema vou ficar muito agradecido...
Bom para todos, acabei eu mesmo solucionando o problema...
No banco de dados tinha salvo um espaço em braco (barra de espaços), ficando assim um caracter... Mas no meu if eu estava fazendo um teste utilizando o parametro " "...Que é para espaço em branco, mas não conta como caracter...Eu poderia ter usado "trim" se eu não me engano...mas alterei o valor do banco para eliminar futuros problemas...
Obrigado a todos pela força...
Boa Noite amigo,
Não entendi bem amigo, isso da erro ou não está realizando o que você quer ?
Abraços.