Ir para conteúdo

POWERED BY:

Arquivado

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

Denis Mattos

If dentro de Select

Recommended Posts

E ae Galera..

Meu problema é o seguinte...

 

na minha pagina em php posso inserir 4 fotos no meu banco de dados.. e toda fez preciso inserir as 4 fotos mesmo que ja tenha postado anteriormente, entao criei umas funcoes dento do programa e so falta uma coisa..

 

dentro do select preciso colocar if, por exemplo, se a variavel "$foto1ok" estiver recebendo "on" (if $foto1ok== 'on') seta o atributo "fotos" com a variavel "$arquivo_nome" (fotos='$arquivo_nome")

 

entao ficaria mais ou menos assim

 

mysql_query (UPDATE noticias SET (if ($foto1ok== 'on') { fotos='$arquivo_nome'}) or die ("Não foi possível realizar a consulta ao banco de dados");

mas acho que isso não funciona.. alguem saberia me dizer como faz?

vlw..

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem...

 

não fico muito claro seu esboço mas...

 

faça o if fora do sql

 

 

você atribui um nome ao comando sql

 

$sql=mysql_query(update....

 

if($sql){echo "Atualização Realizada";}

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem...

 

não fico muito claro seu esboço mas...

 

faça o if fora do sql

 

 

você atribui um nome ao comando sql

 

$sql=mysql_query(update....

 

if($sql){echo "Atualização Realizada";}

o problema que se fizer if fora, serao muitos.. pq são varias combinacoes..

 

mysql_query (UPDATE noticias SET (if ($foto1ok== 'on') { fotos='$arquivo_nome'},(if ($foto2ok== 'on') { fotos2='$arquivo_nome2'},(if ($foto3ok== 'on') { fotos3='$arquivo_nome3'},(if ($foto4ok== 'on') { fotos4='$arquivo_nome4'}) or die ("Não foi possível realizar a consulta ao banco de dados");

entendeu?

se fizer um if fora, imagina o tanto deif q vo ter q fazer..

se o primeiro e o segundo ficarem on faz uma atualizacao, se o primeiro ficar on apenas faz outra atualizacao, se o primeiro, segundo, terceiro ficarem on faz outra atualizacão... e assim por diante..

 

entao se colocar um if dentro do select nao preciso usar tantos if

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa usar if dentro do select não.

 

Faça fora e coloque deposi só o codigo dentro do select.

 

Exemplo

 

if($blabla == $bloblo){

$dados = $funcao;

}

 

Ae no select coloque $dados :/ ou se precisar coloque o select junto do if caso você não for usar o else.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa usar if dentro do select não.

 

Faça fora e coloque deposi só o codigo dentro do select.

 

Exemplo

 

if($blabla == $bloblo){

$dados = $funcao;

}

 

Ae no select coloque $dados :/ ou se precisar coloque o select junto do if caso você não for usar o else.

Mas se usar deste jeito, por exemplo, se usar 4 variaveis p receber dados, irei usar mais do que 4 if. Quero usar apenas 4 condições

 

EDIT:

Entendi o que quis dizer... Coloquei uma variavel para cada um deles, e essa variavel deixei com nada no inicio, entao se tiver ok a variavel receve os dados para complementar o banco de dados.. mas quando a variavel fica com nada tipo ($dados='') da erro no banco de dados..

Ae p concertar isso, teria que colocar mais 4 if dizendo... se $dados1 estiver vazio, select nao recebe falor de $dados1 apenas dos outros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de pensar muito consegui criar uma função que deu certo! =]

Vlw pelas ideias ae galera, me ajudou um pouco nas ideias

 

ae vai minha solução

if ($foto1ok=="on") {$dado1="fotos='$arquivo_nome'";} else $dado1="";
if ($foto2ok=="on") {$dado2="fotos2='$arquivo_nome2',thumb2='$prod_img_thumb2'";} else $dado2="";
if ($foto3ok=="on") {$dado3="fotos3='$arquivo_nome3',thumb3='$prod_img_thumb3'";} else $dado3="";
if ($foto4ok=="on") {$dado4="fotos4='$arquivo_nome4',thumb4='$prod_img_thumb4'";} else $dado4="";

if (($dado2=="") and ($dado3=="") and ($dado4=="")) $virg1=""; else {if ($dado1!="") $virg1=",";};
if (($dado3=="") and ($dado4=="")) $virg=""; else {if ($dado2!="") $virg2=",";};
if ($dado4=="") $virg=""; else {if ($dado3!="") $virg3=",";};

$dados = "$dado1 $virg1 $dado2 $virg2 $dado3 $virg3 $dado4";

ae só colocar $dados dentro do comando sql e pronto =] sem problemas de virgula, ou dados vazios =D

fiz 3 if a mais do q esperado mas é melhor q milhoes de combinacoes diferentes

Compartilhar este post


Link para o post
Compartilhar em outros sites

evite escrever desse modo.

 

procure acostumar-se com a semantica recomendada pela zend

 

 

quanto ao codigo, se você tem preocupação quanto a quantidade de linhas escritas pode fazer algo mais.. "elegante"

usando arrays

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode fazer assim tb:

 

$dados = "";

if ($foto1ok=="on") 
{
	$dados .= " fotos='$arquivo_nome' ";
}
if ($foto2ok=="on")
{
	$dados .= " fotos2='$arquivo_nome2',thumb2='$prod_img_thumb2' ";
}
if ($foto3ok=="on")
{
	$dados .= " fotos3='$arquivo_nome3',thumb3='$prod_img_thumb3' ";
}
if ($foto4ok=="on")
{
	$dados .= " fotos4='$arquivo_nome4',thumb4='$prod_img_thumb4' ";

mysql_query ("UPDATE noticias SET $dados WHERE ....") or die ("Não foi possível realizar a consulta ao banco de dados");

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.