Ir para conteúdo

Arquivado

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

Anderson Hito

Filtro de array vindo do banco

Recommended Posts

Boa noite galera, preciso de uma ajuda.

 

Estou efetuando uma pesquisa no banco de dados mysql, essa pesquisa me retorna o menor valor de cada coluna, até ai sem problemas.

O problema é que estou amarrado a mostrar 6 linhas da consulta.

Preciso que me ajudem a mostrar o resultado de acordo com a quantidade cadastrada no banco.

 

Abaixo segue o código:

 

<?php require_once('../Connections/compras_empresa.php'); ?>
<?php
mysql_select_db($database_compras_empresa, $compras_empresa);
$sql='SELECT proposta_valorunitario FROM propostas WHERE proposta_referencia=259';
$res = mysql_query($sql,$compras_empresa);
$num_rows = mysql_num_rows($res);
echo "encontrado".$num_rows. " - "."linhas <br />";
$i = 0;
while($escrever = mysql_fetch_array($res)){
$listaqtd = $escrever['proposta_valorunitario'];
$resultadoqtdteste = explode ("#", $listaqtd);
$array_1[$i] = $resultadoqtdteste[0];
$array_2[$i] = $resultadoqtdteste[1];
$array_3[$i] = $resultadoqtdteste[2];
$array_4[$i] = $resultadoqtdteste[3];
$array_5[$i] = $resultadoqtdteste[4];
$array_6[$i] = $resultadoqtdteste[5];
$i++;
}
sort($array_1);
sort($array_2);
sort($array_3);
sort($array_4);
sort($array_5);
sort($array_6);
echo $array_1[0]."<br>";
echo $array_2[0]."<br>";
echo $array_3[0]."<br>";
echo $array_4[0]."<br>";
echo $array_5[0]."<br>";
echo $array_6[0]."<br>";
?>
Me ajudem !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que ajuda isso...

while(...){
  [...]
 
   $listaqtd = $escrever['proposta_valorunitario'];
   $resultadoqtdteste = explode("#",$listaqtd);
   foreach($resultadoqtdteste as $ch=>$vl){
      $array[$i] = $vl;
      sort($array[$i]);
   }
   
 
$i++;
}
  foreach($array as $ch=>$valor){
     echo $array[$ch]."<br>";   
   } 

Testa e reporta algum erro... não testei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu erro.

Warning: sort() expects parameter 1 to be array, string given in [/size]/home/sevidora/public_html/compras/login/teste.php on line [/size]16

 

 

Será que ajuda isso...

while(...){  [...]    $listaqtd = $escrever['proposta_valorunitario'];   $resultadoqtdteste = explode("#",$listaqtd);   foreach($resultadoqtdteste as $ch=>$vl){      $array[$i] = $vl;      sort($array[$i]);   }    $i++;}  foreach($array as $ch=>$valor){     echo $array[$ch]."<br>";      } 

Testa e reporta algum erro... não testei

http://servidorinformatica.com.br/compras/images/banco.jpg

 

o filtro deve ser desta maneira.

Compartilhar este post


Link para o post
Compartilhar em outros sites
while(...){
  [...]
 
   $listaqtd = $escrever['proposta_valorunitario'];
   $resultadoqtdteste = explode("#",$listaqtd);
   foreach($resultadoqtdteste as $ch=>$vl){
      $array[$i][$ch] = $vl;
      sort($array[$i]);
   }
   
 
$i++;
}
  foreach($array as $ch=>$valor){
     echo $valor[$ch][0]."<br>";   
   } 

Anderson.... ainda não testei pq estou confuso em como criar um array teste para rodar no foreach... mas tenta assim.. e vamo ver no que dá

Compartilhar este post


Link para o post
Compartilhar em outros sites
while(...){
  [...]
 
   $listaqtd = $escrever['proposta_valorunitario'];
   $resultadoqtdteste = explode("#",$listaqtd);
   foreach($resultadoqtdteste as $ch=>$vl){
      $array[$i][$ch] = $vl;
      sort($array[$i]);
   }
   
 
$i++;
}
  foreach($array as $ch=>$valor){
     echo $valor[$ch][0]."<br>";   
   } 

Anderson.... ainda não testei pq estou confuso em como criar um array teste para rodar no foreach... mas tenta assim.. e vamo ver no que dá

 

Segue o link para visualizar online.

 

http://servidorinformatica.com.br/compras/login/teste.php

 

Não está filtrando corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte....

 

 

Debuga o array...

 

 

comenta o foreach e poe isso aqui..

echo "<pre>";
var_dump($array);
echo "</pre>";

E poe o resultado aqui... vamos analisá-lo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte....

 

 

Debuga o array...

 

 

comenta o foreach e poe isso aqui..

echo "<pre>";
var_dump($array);
echo "</pre>";

E poe o resultado aqui... vamos analisá-lo

Vamos lá:

$listaqtd = $escrever['proposta_valorunitario'];
$resultadoqtdteste = explode("#",$listaqtd);
foreach($resultadoqtdteste as $ch=>$vl){
$array[$i][$ch] = $vl;
sort($array[$i]);
echo "<pre>";
var_dump($array);
echo "</pre>";
}
$i++;
}
//foreach($array as $ch=>$valor){
// echo $valor[$ch][0]."<br>";
// }
Resultado;

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.. se eh para exibir o menor valor... vamos usar o asort();

 

http://php.net/manual/pt_BR/array.sorting.php <<< Manual

   $listaqtd = $escrever['proposta_valorunitario'];
   $resultadoqtdteste = explode("#",$listaqtd);
   foreach($resultadoqtdteste as $ch=>$vl){
      $array[$i][$ch] = $vl;
   }
   
   asort($array[$i]);

$i++;
}
  foreach($array as $ch=>$valor){
     echo $valor[0]."<br>";   
   }

Tirei o ordenamento de dentro do foreach... mas fui eu mesmo quem pus.. foi mals...

 

E exibi a primeira posição do array... eu tinha erra ai tb...,

 

 

Vamos ver agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.. se eh para exibir o menor valor... vamos usar o asort();

 

http://php.net/manual/pt_BR/array.sorting.php <<< Manual

   $listaqtd = $escrever['proposta_valorunitario'];
   $resultadoqtdteste = explode("#",$listaqtd);
   foreach($resultadoqtdteste as $ch=>$vl){
      $array[$i][$ch] = $vl;
   }
   
   asort($array[$i]);

$i++;
}
  foreach($array as $ch=>$valor){
     echo $valor[0]."<br>";   
   }

Tirei o ordenamento de dentro do foreach... mas fui eu mesmo quem pus.. foi mals...

 

E exibi a primeira posição do array... eu tinha erra ai tb...,

 

 

Vamos ver agora

Ainda não está ordenando conforme a imagem.

 

http://servidorinformatica.com.br/compras/login/teste.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... ele tá certo... da perspectiva do codigo... porque se vc olhar bem...

 

 

id_tabela | Valores

 

54 | 4.60#6.00#10.50#1.50#10.00#2.68

 

[...]

 

 

Quem eh o menor valor de 54 ? Eh 1.50... e ele tá retornando isso... nao eh naum?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... ele tá certo... da perspectiva do codigo... porque se você olhar bem...

 

 

id_tabela | Valores

 

54 | 4.60#6.00#10.50#1.50#10.00#2.68

 

[...]

 

 

Quem eh o menor valor de 54 ? Eh 1.50... e ele tá retornando isso... nao eh naum?

Na verdade ele estasomente mostrando a coluna [0]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao Cara... ta certo.... eu acho que vc deve esta querendo outro resultado... mas o produto do codigo ta correto...

 

 

id_tabela | Valores

54 | 4.60#6.00#10.50#1.50#10.00#2.68

Observe os menores valores de registro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa não é para ordenar a linha. Mas sim como coluna igual da imagem:

 

http://servidorinformatica.com.br/compras/login/teste.php

Então na lógica vai ser assim:

 

encontrou 6 linhas então:

na 1° linha que é a 54 eu tenho 6 valores:

na 2° linha que é a 58 eu tenho 6 valores:

na 3° linha que é a 65 eu tenho 6 valores:

na 4° linha que é a 73 eu tenho 6 valores:

na 5° linha que é a 53 eu tenho 6 valores:

na 6° linha que é a 53 eu tenho 6 valores:

 

Até ai beleza. Agora eu preciso fazer o seguinte:

Pegar o primeiro valor da linha 1,2,3,4,5,6 e comparar qual o menor.

Pegar o segundo valor da linha 1,2,3,4,5,6 e comparar qual o menor.

Pegar o terceiro valor da linha 1,2,3,4,5,6 e comparar qual o menor.

Pegar o quarto valor da linha 1,2,3,4,5,6 e comparar qual o menor.

Pegar o quinto valor da linha 1,2,3,4,5,6 e comparar qual o menor.

Pegar o sexto valor da linha 1,2,3,4,5,6 e comparar qual o menor.

 

O resultado seria igual o da imagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.