Jump to content

Array e MySQL


nmoa
 Share

Go to solution Solved by HappyHippyHippo,

Recommended Posts

boa tarde

vou ver se me consigo explicar da melhor forma 🙂

a ideia é saber se uma variável está vazia ou não e ir acrescentando numa raiz total

$total = $destritos.$concelhos.$reslocal.$resnatu.$resneg;

ou seja preciso saber se a var $destritos está vazia...se não tiver aparece, e assim sucessivamente.

depois de verificar se estão vazias ou não necessito que ele me conte quantas são

se for uma a var $total= a uma unica variavel e for mais que uma $total = 'var'+" AND " + "var"

a ideia é esta informação ir complementar uma chamada à base de dados, na parte do WHERE

$local =mysql_query("SELECT *, i.id_imovel as im, i.id_energetico as ener FROM imovel as i
INNER JOIN`imovel_localizacao` as l ON l.`id_imovel`=i.`id_imovel`
INNER JOIN`imovel_caracteristicas` as caract ON caract.`id_imovel`=i.`id_imovel`
INNER JOIN `destritos` as d ON d.`id_destritos`=l.`id_destritos`
INNER JOIN `concelhos` as c ON c.`id_concelhos`=l.`id_concelhos`
INNER JOIN `freguesia` as f ON f.`id_freguesia`=l.`id_freguesia`
INNER JOIN `imovel_valor` as valor ON valor.`id_imovel`=i.`id_imovel`
INNER JOIN `tipo_negocio` as tipo ON tipo.`id_tipo_negocio`=valor.`id_tipo_negocio`

WHERE $total AND i.ativo=1 LIMIT $page_position, $item_per_page ");

não sei se foi muito confuso :|

obrigado pela ajuda

Link to comment
Share on other sites

explicaste mal, mas acho que deu para perceber o que queres.

diz-me só uma coisa, essa informação (os dados das variáveis) está guardada nos parâmetros da chamada ($_POST ou $_GET) ?

se não está, o que determina quais os dados que estão nas variáveis que descreves ?

ps : depois de responderes, vais ver que a solução é muito simples

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Deveria ser $key em vez de %key acho eu...

escrever à pressão é o que dá, mas acho que o criador do tópico deverá ter corrigido por si só

------------------------------------------------

além disso, o código está completamente errado, estava a confundir com um código semelhante para o problema diferente.

o código que tencionava apresentar seria

$where = array();
foreach ($_GET as %key => $value)
 $where[] = $key . " = " . $value;
$sql = " ... where " . implode(" and ", $where) . " ... ";
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

a minha ideia final é esta

$where = array();
foreach ($_GET as $key => $value)
if ($key=="f"){
$key = "l.id_freguesia";
}
if ($key=="neg"){
$key = " valor.id_tipo_negocio";
}
if ($key =="d"){
$key = " l.id_destritos";
}
if ($key=="c"){
$key = " l.id_concelhos";
}
if ($key=="natureza"){
$key= "i.id_natureza";
}

$total = $destritos.$concelhos.$reslocal.$resnatu.$resneg;
$where[] =$key . " = " . $value;
$sql = implode(" and ", $where) . "";

mas os key está a ser substituído e eu quero que seja acrescentado se realmente houver a condição

Link to comment
Share on other sites

Meu, tens que por esse codigo dentro do foreach 🙂

$where = array();
foreach ($_GET as $key => $value) {
if ($key=="f"){
$key = "l.id_freguesia";
}
if ($key=="neg"){
$key = " valor.id_tipo_negocio";
}
if ($key =="d"){
$key = " l.id_destritos";
}
if ($key=="c"){
$key = " l.id_concelhos";
}
if ($key=="natureza"){
$key= "i.id_natureza";
}

$where[] =$key . " = " . $value;
}
$total = $destritos.$concelhos.$reslocal.$resnatu.$resneg;
$sql = implode(" and ", $where) . "";
Edited by apocsantos
Link to comment
Share on other sites

  • Solution

o php permite que a condição da estrutura switch ... case seja uma string

foreach ($_GET as $key => $value) {
 switch ($key) {
   case "f" :        $where[] = " l.id_freguesia = '{$value}'";        break;
   case "neg" :      $where[] = " valor.id_tipo_negocio = '{$value}'"; break;
   case "d" :        $where[] = " l.id_destritos = '{$value}'";        break;
   case "c" :        $where[] = " l.id_concelhos = '{$value}'";        break;
   case "natureza" : $where[] = " i.id_natureza = '{$value}'";         break;
 }
}
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.