Ir para conteúdo

Arquivado

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

Danilo Ramon

Array com Foreach

Recommended Posts

Pessoal tudo bem ?

 

Estou com uma dúvida teoricamente simples, porém não estou conseguindo resolver:

 

Código:

<?php
$campos_tabela = array("nome", "email", "situacao");

foreach ($campos_tabela as $campos) 
    {
       $var = "  $campos LIKE %palavra_chave%  OR";
        
       echo substr($var, 0, -2);
}
?>

 

Resultado:

 

nome LIKE %palavra_chave% email LIKE %palavra_chave% situacao LIKE %palavra_chave%

 

 

O Código que Coloquei repare ter o "OR" no termo final


       $var = "  $campos LIKE %palavra_chave%  OR";

 

 

O Código abaixo era para retirar a Palavra OR no final, porém em cada foreach ele retira o caracteres.

 

Comando para Retirar os Caracteres:



echo substr($var, 0, -2);

 

 

 

 

 

A forma de resultado final que preciso é:

 

nome LIKE %palavra_chave% OR email LIKE %palavra_chave% OR situacao LIKE %palavra_chave%

 

Repare o OR só não existe no último termo...

 

Aguardo uma ajuda / instrução...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

$campos_tabela = array("nome", "email", "situacao");

echo implode(" LIKE '%palavra%' OR ", $campos_tabela)." LIKE '%palavra%'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o seguinte e quase funcionou,

 

<?

$campos_tabela = array("nome", "email", "situacao");

$palavra_chave = "d";

foreach ($campos_tabela as $campos) 
 {
    $var = "  $campos LIKE '%$palavra_chave%' OR";
}

// Comando que Remove o "OR" do último FOREACH                            
$incremento_parametros = substr($var, 0, -2); 

?>

 

O Problema é a variável $var, ela não está guardando somente um fator do array.

 

Como faço para gravar os resultados $var em um única variável por extenso ???

 

Do modo que está agora, ela somente guarda um fator...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução do redstyle é a mais adequada para o caso, pois você evita um loop desnecessário, mas apenas a título de informação, todos os "OR" estão sendo removidos porque você os está desconsiderando dentro da iteração.

 

Da forma como você fez, apesar de inadequada, o procedimento para remoção do último "OR" que invalida a query deveria ocorrer fora do loop, para que fosse executado uma única vez e não a cada nova instrução concatenada. :thumbsup:

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.