Jump to content

PHP/Mysql duvida comparação de dados.


shauss
 Share

Recommended Posts

Boas,

a minha db tem por exemplo os campos cpo_cod3(os 3 numeros do codigo postal),cpo_cod4(os 4 numeros do codigo postal),art_desig(morada),nporta.

então o meu problema é o seguinte, eu tenho por exemplo estas 3 moradas:

1111-123 rua da esquina nºimpares de 3 a 29

1111-124 rua da esquina nºpares de 2 a 24

1234-125 rua da esquina seg.social

eu queria que quando ocorre-se essa situação me retorna-se "morada vaga" mas em vez disso ele retorna a 1ª morada e só depois escreve "morada vaga" fica algo do género:

1111-123 rua da esquina nºimpares de 3 a 29

morada vaga.

O código que estou a utilizar é:

$sql="SELECT *
FROM cpo_cod_pos, ficheiro
WHERE cpo_cod_pos.art_desig LIKE ficheiro.art_nome and cpo_cod_pos.loc_dsc LIKE ficheiro.art_local";
$resultado = mysql_query($sql,$ligacao);
$row3=mysql_num_rows($resultado);
	for ($i=0; $i<$row3; $i++)
	{
		$reg=mysql_fetch_array($resultado); 
		$reg['IDmorada'] = str_replace("%","",$reg['IDmorada']);
		if ($repeticao==$reg['art_desig']){
		if ($repcp4!=$reg["cpo_cod4"] and $repcp3!=$reg["cpo_cod3"]){
			echo '<tr><td>'.$reg['IDmorada'].'</td>';
			echo '<td align="center" colspan="8">morada vaga</td>';
			}
		}else{

Desde já agradeço a vossa ajuda.

Cumps,

SHAUSS

Link to comment
Share on other sites

  • Replies 61
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Se ele aparece "morada vaga", eu n encontro aonde é q isso aparece neste código. Preciso de mais código para te ajudar

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Se ele aparece "morada vaga", eu n encontro aonde é q isso aparece neste código. Preciso de mais código para te ajudar

já alterei o post inicial pode ser que assim já percebas melhor. quanto ao código o resto é só escrever os dados mas se for realmente necessário eu posto aqui.

Link to comment
Share on other sites

Quantos resultados é q ele dá?

+:

Tu n indicas o q é q pesquisas e até procuras com o like

Mostra aí o q tens nessas células. Temo ("cheira-me") que estejas a usar wildcars sem querer.

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Quantos resultados é q ele dá?

+:

Tu n indicas o q é q pesquisas e até procuras com o like

Mostra aí o q tens nessas células. Temo ("cheira-me") que estejas a usar wildcars sem querer.

Tabela Ficheiro

ID art_nome art_local

6 %rua%rosa%araujo% %lisboa%

8 %rua%afonso%henriques% %serra%da%silveira%

os resultados que dá é:

  ID no ficheiro Original: Código postal                     Artéria:

        6                           1250-194  LISBOA                 Rua Rosa Ara�jo

        6                                   morada vaga

        8                           2605-125  BELAS Rua Dom Afonso Henriques

o que eu queria que aparecesse era:

  ID no ficheiro Original: Código postal                     Artéria:

        6                                   morada vaga

        8                           2605-125  BELAS Rua Dom Afonso Henriques

Link to comment
Share on other sites

Responde a isto sff:

Porque é que usas o like?

Qual a função do %?

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Responde a isto sff:

Porque é que usas o like?

Qual a função do %?

Uso o like porque me parece a forma mais simples de fazer uma comparação de strings.

Não sei muito bem explicar, mas assim de uma forma geral penso que por exemplo se tiver %$string% para alem de procurar $string em si procura também a $string com algo ha frente ou atras. epah se me tavas a "testar" presumo que falhei se não sabes mesmo o melhor é googlar q eu sou um tosco neste aspecto  :wallbash:

Link to comment
Share on other sites

eu queria que quando ocorre-se essa situação me retorna-se "morada vaga" mas em vez disso ele retorna a 1ª morada e só depois escreve "morada vaga" fica algo do género:

1111-123 rua da esquina nºimpares de 3 a 29

morada vaga.

O código que estou a utilizar é:

		if ($repcp4!=$reg["cpo_cod4"] and $repcp3!=$reg["cpo_cod3"]){
			echo '<tr><td>'.$reg['IDmorada'].'</td>';
			echo '<td align="center" colspan="8">morada vaga</td>';
			}

Estás a dizer para escrever morada vaga e a morada na mesma condição .. não percebo o que queres ..

Link to comment
Share on other sites

@yoda

Eu já pensei tb nisso. Mas é só um id, supostamente n incomoda.

E além disso, pelo q ele mostra aquilo é num novo <tr> e não num novo <td>. Se fosse num novo <td> é q poderia ser algo com o IDmorada.

Uso o like porque me parece a forma mais simples de fazer uma comparação de strings.

Não sei muito bem explicar, mas assim de uma forma geral penso que por exemplo se tiver %$string% para alem de procurar $string em si procura também a $string com algo ha frente ou atras. epah se me tavas a "testar" presumo que falhei se não sabes mesmo o melhor é googlar q eu sou um tosco neste aspecto  :wallbash:

É q tens aí um:  $reg['IDmorada'] = str_replace("%","",$reg['IDmorada']);

e pareceu-me que estavas a usar o simbulo % para separar dados.

o % e o _ em SQL são wildcards, há q ter atenção a isso.

add:

N sei se sabes mas é bom avisar:

Nunca uses wildcards para simplificar coisas, usa-os qd queres pesquisar algo q não sabes o q é mas sabes parte do q é.

Se tens nomes de ruas, etc... só se, por exemplo, um utilizador quiser procurar é q usas wildcards, senão usa literals.

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

eu uso os % porque me dá mais garantias de resultado correcto. E apenas nesta questão me está a falhar alguma coisa, até porque o meu 'stor' de programação já me disse que na teoria tá certo e não sabe onde possa estar o erro.

Link to comment
Share on other sites

se calhar o erro está noutro sítio

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

o q é q o:

$reg['IDmorada']

tem gravado?

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

o q é q o:

$reg['IDmorada']

tem gravado?

tem gravado o ID do registo correspondente na tabela ficheiro.

Acho que farias melhor em usar regex para verificar a integridade da morada, e há pela net snippets de código para verificar códigos postais, entre muitas outras coisas.

eu ainda sou "noob" em php portanto nao faço a minima do que sejam esses termos que acabas-te dizer  :wallbash: (regex,snippets)

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.