Jump to content


Photo

Condição Sem Funfá.


  • Faça o login para participar
5 replies to this topic

#1 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 06/09/2004, 15:56

Tenho o seguinte código:

<?

$dbh=mysql_connect ("127.0.0.1", "root","pass");
$db=mysql_select_db("BD" , $dbh);
$seleciona=mysql_query("SELECT * FROM tabela WHERE nome LIKE '$nome' AND mes LIKE '$mes' AND numero LIKE '$numero'", $dbh);
$contagem=mysql_num_rows($seleciona);

if ( $contagem == 0 ) {
echo "<font face=arial size=2 color=red>Nenhum Registro encontrado</center></font>";
}
else
{

if ($item1!=""){
$obs1="Possui faltas";
}
else{
$obs1="";
}

if ($item2!=""){
$obs2="Possui atrasos";
}
else{
$obs2="";
}

if ($item3!=""){
$obs3="Não conformidades";
}
else{
$obs3="";
}

$observacoes=("<br>".$obs1."<br>".$obs2.<br>".$obs3);
echo $observacoes;


}

?>


Tenho uma tabela com 27 campos "item" diferentes. O conteúdo de cada campo é vazio ou "X".

O intuito do sistema acima é de, se o campo item1 da tabela for diferente de vazio, a variável obs1 será igual ao texto à ela definido. e assim sucessivamente. No final do comando, a variável $observacoes resgata o valor de cada variável e mostra ao usuário.

O problema é q, aparentemente, está sendo descartado o ELSE de cada IF.
Alguém está conseguindo enchergar onde está o bug?

Agradeço desde agora mesmo.

Abraços!
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

Posted 06/09/2004, 16:06

- Para que esta usando LIKE no seu comando SQL ?

- Em nenhum momento vc esta instanciando um resultado, tipo: mysql_fetch_array.
------
Mero mortal!

#3 MeuServidor

MeuServidor

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 06/09/2004, 16:20

Boxer,

este ItemX não foi resgatado do mysql. Para resgata-lo utilize:

$dados = mysql_fetch_array($seleciona);
$item1 = $dados[item1];

para pegar a coluna ITEM1.

Quanto ao like, ele é um coringa, e diminui o desempenho da busca. Caso sejam números, utilize "=" ao invés do "LIKE".

#4 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 06/09/2004, 16:23

Pq sempre q passamos mais de 2 horas tentando desvendar um mistério e, depois de perguntar para alguém, antes da resposta, nós desvendamos?

Era exatamente isso!
não tinha mysql_fetch_array!
Mil desculpas pela gafe!
E obrigado pela resposta!

uso o like pra comparar os valores das 3 variáveis com o BD.
Essa página vai pegar o conteúdo de um link q o usuário vai clica...

pagina.php?nome=tal&mes=3&numero=1

Pq? Tah errado ou não estou sendo justo com a linguagem?

Abraços!
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#5 MeuServidor

MeuServidor

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 06/09/2004, 16:32

Veja bem, se ele clicar em

pagina.php?nome=tal&mes=3&numero=1

e no bd for

NOME = TAL
MES = 3
NUMERO = 1

não há necessidade para usar o Like, entende? Alias, você não está usando o like da maneira correta, já que você não utilizou o coringa dele. %

Vamos lá:

Opção1:
Está no BD estas informações:

NOME = TAL
MES = 3
NUMERO = 1

use SELECT * FROM tabela WHERE nome = '$nome' AND mes = '$mes' AND numero = '$numero'",


Opção2:
Está no BD estas informações:

NOME = TAL da silva
MES = 3
NUMERO = 1

use SELECT * FROM tabela WHERE nome like '%$nome%' AND mes = '$mes' AND numero = '$numero'"


Com este like '%nome%' ele vai procurar os nomes que tenham TAL no meio. entende? então o TAL da SILVA pertence a esta lista.

#6 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 06/09/2004, 16:58

Corretíssimo, Amigo!!!
Perfeitamente entendido.
Conheço o coringa % e sua funcionalidade. Porém não tinha o conhecimento da utilização correta do LIKE.

Agradeço novamente, Amigo! (y)

Abraços e bom FDS! :D
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq