bruna.s23
-
Total de itens
15 -
Registro em
-
Última visita
Posts postados por bruna.s23
-
-
exite alguma função para comparar arrays
e verificar se existe algum item igual nelas, e se existir
imprimir apenas uma vez o numero que é igual?
importante não sei a quantidade de dados que tem em cada uma
-
Qual a lógica de fazer duas buscas no mesmo banco de dados de forma seguida para ver se tem alguma coisa diferente? Que coisa seria essa?
No caso ele busca duas coisas distintas.
mas no mesmo banco
-
como posso fazer para
fazer uma busca no banco de dados guarda os Ids (que no caso é o resultado)
fazer outra busca no mesmo banco guardar os IDs (também é o resultado)
e depois comparar estes resultados
é se houver algum item igual ele imprime este item
se não houver nenhum item igual
aparece a mensagem de que não tem nada igual.
Como posso fazer isso?
como são muitos itens a comparar seria possivel fazer com array?
-
ou....
você pode colocar simplesmente:
if(mysql_num_rows($sql2)>0)
{
$verifica = "";
while($ver2 = mysql_fetch_array($sql2))
{
$linha2 = $ver2['linha'];
$tipo2 = $_REQUEST["tipo2"];
$busca2 = $_POST["search_destino"];
$busca2 = strtoupper($busca2);
$sql7 = mysql_query("select * from ruas where upper(ruas) like '%" . $busca2 . "%' and linha=$linha2") or die(" erro ".mysql_error()."" );
if(mysql_num_rows($sql7)>0)
{
while($ver7 = mysql_fetch_array($sql7))
{
$linha3 = $ver7['linha'];
$comando = "select * from linhas where id=$linha3";
$tabela = mysql_query($comando);
$registro = mysql_fetch_assoc($tabela);
$linhas = $registro['linha'];
$id = $registro['id'];
if(!in_array($linhas, $printed))
{
array_push($printed, $linhas);
echo "<a href='itinerario.php?cod=".$id."' id='texto'><font id='texto'><li>";
echo $linhas;
echo"</a><br><br>";
}
}
}
else { // observe que retirei o if ($verifica == "")
echo "oi";
$verifica = "VERIFICADO";
}
}
}
else
{
echo "lala";
}
Jissa,
Foi quase.
está aparecendo apenas uma vez, mas também está aparecendo
quando faço a busca e encontra intens iguais.
o que não deveria aparecer.
-
oi bruna... perdoe-me a ignorância... mas ainda não entendi o que você quer.... eu pensei que mesmo a resposta for negativa.. o "OI" ele apareceria..
abraços
acho que eu não estou sabendo explicar.
vamos lá. tipo quando ele faz a segunda busca e não encontra nada
ele deveria imprimir um oi - apenas um
se ele encontrar ele deve imprimir
as linhas a qual ele perntence.
mas ele está imprimindo um oi também quando acha algum conteúdo.
(muito ilogico.)
deu para entender?
-
hummmm...entendi... :rolleyes: ..... mas observe uma coisa:
se você não der uma saída para essa condicional, ela sempre lhe retornará a mesma mensagem... por isso aconselho a você fazer dessa forma para ver se funciona:
if ($verifica == "")
{
echo "oi";
$verifica = "VERIFICADO";
}else{
echo "lalala";
}
abraços
Anarqista,
Não funcionou, preciso que mesmo se le não encontre a segunda busca ele apenas imprima o Oi
se encotrar ele imprime as linhas q qual ele pertence.
no caso se faço o que você sugeriu
ele verifica o valor do $verifica é igual a nada
se for ele imprime o "oi"
se não ele vai imprimir os "lalal"
mas mudamos o $verificar de nada para verdadeiro
então ele acaba imprimindo lalala
varias vezes.
colocamos o valor "verdadeiro" para que não passe novamente por este ponto
e imprima varias vezes o "oi"
Jissa, acho que vou ficar meio louca.. não é possível - não funcionou. no caso tinhamos colocado esteOlá Bruna..pelo que vi primeira pesquisa rua, se achar pesquisa a linha, certo??
a variavel $verifica não é necessaria já que voce já ve isto quando coloca o >0 só vai executar se achar..
fiz umas mudanças na sua estrutura.. veja se funciona ai
include("connect.php"); $tipo = $_REQUEST["tipo"]; $busca = $_POST["origem"]; $busca = strtoupper($busca); $sql2 = mysql_query("select * from ruas where upper(ruas) like '%" . $busca . "%'") or die(" erro ".mysql_error()."" ); $printed= array(); if(mysql_num_rows($sql2)>0) { while($ver2 = mysql_fetch_array($sql2)) { $linha2 = $ver2['linha']; $tipo2 = $_REQUEST["tipo2"]; $busca2 = $_POST["search_destino"]; $busca2 = strtoupper($busca2); $sql7 = mysql_query("select * from ruas where upper(ruas) like '%" . $busca2 . "%' and linha=$linha2") or die(" erro ".mysql_error()."" ); if(mysql_num_rows($sql7)>0) //Se encontrado registro { while($ver7 = mysql_fetch_array($sql7)) { $linha3 = $ver7['linha']; $comando = "select * from linhas where id=$linha3"; $tabela = mysql_query($comando); $registro = mysql_fetch_assoc($tabela); $linhas = $registro['linha']; $id = $registro['id']; if(!in_array($linhas, $printed)) { array_push($printed, $linhas); echo "<a href='itinerario.php?cod=".$id."' id='texto'><font id='texto'><li>"; echo $linhas; echo"</a><br><br>"; } } } else // Se não localizado { echo "<br><b>Linha não localizada</b>"; } } } else { echo "<br><b>Rua Não localizada</b>"; }
if ($verifica =="") { echo "oi"; $verifica = "verdadeiro";
porque o oi quando colocamos ele sozinho ele repete varia vezes então colocamos.
pois depente da primeira busca, se ele encontrar 20 itens na primeira e buscar na segunda não encontrar ele
imprime 20 "oi".
colocamos então se ele não encontra nada na segunda busca ele verificar se $verifica é nulo, no caso é
então ele imprime uma vez o "oi" e muda o $verifica para verdadeiro assim ele não passa mais,
mas o que esta acontecendo é que ele esta imprimindo um "oi" mesmo que ele ache.
veja
Veja
origem av. Brigadeiro Faria lima
destino av. tiradentes.
no resultado um oi .
-
hummmm...entendi... :rolleyes: ..... mas observe uma coisa:
se você não der uma saída para essa condicional, ela sempre lhe retornará a mesma mensagem... por isso aconselho a você fazer dessa forma para ver se funciona:
if ($verifica == "")
{
echo "oi";
$verifica = "VERIFICADO";
}else{
echo "lalala";
}
abraços
Anarqista,
Não funcionou, preciso que mesmo se le não encontre a segunda busca ele apenas imprima o Oi
se encotrar ele imprime as linhas q qual ele pertence.
no caso se faço o que você sugeriu
ele verifica o valor do $verifica é igual a nada
se for ele imprime o "oi"
se não ele vai imprimir os "lalal"
mas mudamos o $verificar de nada para verdadeiro
então ele acaba imprimindo lalala
varias vezes.
colocamos o valor "verdadeiro" para que não passe novamente por este ponto
e imprima varias vezes o "oi"
-
entendi... retire-o do while e coloca na condicional if()... veja se funciona....
abraços
outra coisa...até onde meu conhecimento vai.. não se usa else no while... veja: http://www.php.net/manual/pt_BR/control-structures.while.php
abraços
Cara, foi mal
o else realmente faz parte do If o primeiro lá de cima da primeira busca
-
ola´bruna...
não entendi muito bem o que você quer... mas eu observei essa linha:
else
{
echo "lala";
}
não se esse echo era pra retornar no lugar do "OI"... se for .. retire-o de onde está e coloque-o nessa linha:
if ($verifica == "")
{
echo "oi";
$verifica = "VERIFICADO";
}
ficando assim:
if ($verifica == "")
{
echo "oi";
$verifica = "VERIFICADO";
}
else
{
echo "lala";
}
abraços
else { echo "lala"; }
faz parte do while lá de cima da primeira busca.
-
olhando por cima falta a chave depois do else, de uma olhada nesta parte do codigo, acho que deveria ser:
else
{
if ($verifica == "")
{
echo "oi";
$verifica = "VERIFICADO";
}
}
Jissa,
Não funcionou .
o que mais pode ser?
-
Vamos lá.
Tenho um sistema de busca de itinerario nele a pessoa digita o lugar de onde ela esta
e o lugar para onde ela vai.
O banco de dados esta separado da seguinte forma
Tabela 1
ID | tipo | rua | linha
onde o tipo é av., rua rodovia
rua possui os nomes das ruas
e linha a qual rua ela faz parte.
Então ele busca no banco de dados o primeiro item, se ele localizou ele guarda as linhas a qual ele faz parte
ele busca o segundo item sendo que precisa pertencer a mesma linha do da primeira busca
feito isso ele encontra um monte de item iguais que pertencem a mesma linha.
ex. ele acha varia av. Brigadeiro Faria lima na linha 9 - então ele deixa que aparece apenas uma
linha . ex. ele achou 5 av. faria lima na linha 9 . porem ele irá imprimir apenas uma.
até ai tah tudo certinho.
o problema é quando ele não acha o segundo item
no caso ele teria que imprimir apenas um "oi"
mas o que esta acontecendo é que mesmo se ele acha ele imprime um "OI"
no meio do resultado.
Veja
origem av. Brigadeiro Faria lima
destino av. tiradentes.
no resultado um oi .
include("connect.php"); $tipo = $_REQUEST["tipo"]; $busca = $_POST["origem"]; $busca = strtoupper($busca); $sql2 = mysql_query("select * from ruas where upper(ruas) like '%" . $busca . "%'") or die(" erro ".mysql_error()."" ); $printed= array(); if(mysql_num_rows($sql2)>0) { $verifica = ""; while($ver2 = mysql_fetch_array($sql2)) { $linha2 = $ver2['linha']; $tipo2 = $_REQUEST["tipo2"]; $busca2 = $_POST["search_destino"]; $busca2 = strtoupper($busca2); $sql7 = mysql_query("select * from ruas where upper(ruas) like '%" . $busca2 . "%' and linha=$linha2") or die(" erro ".mysql_error()."" ); if(mysql_num_rows($sql7)>0) { while($ver7 = mysql_fetch_array($sql7)) { $linha3 = $ver7['linha']; $comando = "select * from linhas where id=$linha3"; $tabela = mysql_query($comando); $registro = mysql_fetch_assoc($tabela); $linhas = $registro['linha']; $id = $registro['id']; if(!in_array($linhas, $printed)) { array_push($printed, $linhas); echo "<a href='itinerario.php?cod=".$id."' id='texto'><font id='texto'><li>"; echo $linhas; echo"</a><br><br>"; } } } else if ($verifica == "") { echo "oi"; $verifica = "VERIFICADO"; } } } else { echo "lala"; }
Aguardo.
-
AEEEE
Ursolouco super obrigada funcionou certinho.
Valeu
-
Não está funcionando. Deu esse erro
Warning: array_push() [function.array-push]: First argument should be an array in /home/httpd/vhosts/neux.com.br/httpdocs/teste/search.php on line 28
010 - Cocaia / Centro (Até o Parque Flamengo) - Ida
Warning: array_push() [function.array-push]: First argument should be an array in /home/httpd/vhosts/neux.com.br/httpdocs/teste/search.php on line 28
010 - Cocaia / Centro (Até o Parque Flamengo) - Ida
Warning: array_push() [function.array-push]: First argument should be an array in /home/httpd/vhosts/neux.com.br/httpdocs/teste/search.php on line 28
010 - Cocaia / Centro (Até o Parque Flamengo) - Ida
-
Estou com o seguinte codigo:
include("connect.php"); $tipo = $_REQUEST["tipo"]; $busca = $_POST["origem"]; $busca = strtoupper($busca); $sql2 = mysql_query("select * from ruas where upper(ruas) like '%" . $busca . "%'") or die(" erro ".mysql_error()."" ); if(mysql_num_rows($sql2)>0){ while($ver2 = mysql_fetch_array($sql2)){ $linha2 = $ver2['linha']; $busca2 = $_POST["search_destino"]; $busca2 = strtoupper($busca2); $sql7 = mysql_query("select * from ruas where upper(ruas) like '%" . $busca2 . "%' and linha=$linha2") or die(" erro ".mysql_error()."" ); if(mysql_num_rows($sql7)>0){ while($ver7 = mysql_fetch_array($sql7)){ $linha3=$ver7['linha']; $comando="Select * from linhas where id=$linha3"; $tabela = mysql_query($comando); mysql_num_rows($tabela); $registro = mysql_fetch_assoc($tabela); $linhas = $registro['linha']; echo $linhas; echo"<br>"; } }else{ echo $linhas; //print "<script>window.alert('Não há linha que passe neste destino.');</script>"; //print "<script>window.location='index.php';</script>"; } } }else{ echo "oi"; }
Na segunda busca ele guarda as "linhas" em $linha3 o resultado é 9 9 9 10 10 10 11 12 12 12
preciso que depois que ele coloca as linhas na variavel ele retire todos os campos que se repentem deixando apenas um item de cada ex. 9 10 11 12 e assim por diante..
Quem puder ajudar agradeço desde já.
função para comparar arrays
em PHP
Postado
Isso mesmo a função array_intersect
funcionou direitinho.
agora preciso comparar este array com um campo no msql
e além disso verificar se na hora de comparar os arrays ele
localizou alguma coisas se sim ele compara se não ele retorna uma mensagem.
tentei fazer ma esta com erro veja.