Ir para conteúdo

POWERED BY:

Arquivado

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

Robson Barros da Rocha

Como posso usar o IF e Else no SQL?

Recommended Posts

Éh... Eu sei que é um absurdo essa pergunta, mas, meus conhecimentos em PHP são bem leigos e infelizmente eu não consigo imaginar uma função ou, um comando do SQL que faça isso.

 

Na verdade, eu estou querendo criar um modelo simples de idioma, e dentro dele há alguns campos:

lang

id

alias

traducao

categoria

online

 

Depois de fazer tudo (o insert, o update e até o deleted) no PHP para me facilitar o trabalho diretamente na página do Admin, eu pensei. Como poderei inserir um ALIAS com o mesmo nome, contudo, com uma tradução diferente?

 

Ou seja:

 

lang_='pt': Correspondente ao idioma Português

id='1': Correspondente ao ID do ALIAS. Acho que isso não é necessário, ou é? Dê sua opinião.

alias='HOME': Nome da variável que terá o seu valor substituído pelo valor da tradução.

traducao='Início': Este é o valor da tradução do alias HOME. Quando eu colocar o PHP echo para o lang HOME, ele vai ser exibido na página Início.

categoria='MENU': Categoria do alias.

online='1': Só para dizer se essa variável está funcionando.

Até aqui, eu presumo que tenhas compreendido. Agora, vamos supor que queira adicionar a mesma variável no Banco de dados, com o mesmo alias, mas ao invés do idioma ser Português (pt), agora será Inglês (eng). A pergunta é: Que função no PHP eu consigo montar para que...:

 

Se existir um ALIAS com o nome "HOME" no idioma "pt", aparece um erro dizendo que já existe.

Se existir um ALIAS com o nome "HOME" no idioma "eng", aparece um erro dizendo que já existe.

Conseguiram me compreender? Tendo essa lógica, eu fiz isso:

$search = mysql_query("SELECT * FROM languages WHERE alias = '$alias'  ");

Só que, se eu deixar o $alias, se existir um alias com o nome "HOME" tanto para o Inglês quanto para o Português, eu não posso adicionar.

 

Sim, é estranho eu estar perguntando isso, se fui eu que criei esse comando, mas, eu queria saber se há como fazer o que mencionei. Se existir aquele alias na coluna lang_, ele exibe um erro.

 

Obrigado pela sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui fazer o que eu queria.. kkkk Não era exatamente usando o CASE, e sim a combinação do PHP e o resultado da pesquisa no SQL. Eu fui tolo, e só racionei isso agora. Obrigado Motta, mas, mesmo ainda não precisando usar esta operação, agora que não a entendi. Mas, vou esperar, quem sabe eu não precise dela no futuro? :D

 

Enfim, a solução que encontrei foi a seguinte. Na minha consulta do SQL eu já tinha isso:

$search = mysql_query("SELECT * FROM languages WHERE alias = '$alias'  ");
Okay, pois, o SQL retorna o valor encontrado na coluna ALIAS. Por exemplo: alias='JOÃO'. Mas, como ele pode consultar se esse nome JOÃO já existe na coluna lang_? É só adicionar o AND !

$search = mysql_query("SELECT * FROM languages WHERE alias='$alias' and lang_='$lang_'");
Agora ele vai me dar os valores do ALIAS e da LANG_. Ou seja:

alias='JOÃO' AND lang_'pt'

Tendo já os valores, então eu só preciso montar no PHP o comando de comparação com IF e ELSE:

if (@mysql_num_rows($search) != 0) { echo "Deu errado."}
RESUMINDO: O erro era isso != :D Esse bendito quer dizer Diferente. Logo, o comando será:

 

Se(a consulta) for diferente do resultado, então ele adiciona o ALIAS. Ao contrário, ele emite o erro do ECHO. :D

 

Obrigado

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.