Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 !!!
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.
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á
>
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.
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
>
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;
http://servidorinformatica.com.br/compras/login/teste.phpok.. 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>
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.
asort() parace que associa mantendo os indices... tenta só o sort() mesmo...
asort() parace que associa mantendo os indices... tenta só o sort() mesmo...
Tentei mas filtra errado tambem.
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?
>
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]
Com asort() estava mesmo... pcausa dos indices... mas com o sort() estava ?
Com asort() estava mesmo... pcausa dos indices... mas com o sort() estava ?
Com sort ele se perde totalmente.
Na verdade ele estasomente mostrando a coluna [0]
Outra coisa não é para ordenar a linha. Mas sim como coluna igual da imagem:
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...
Ah... entao não por ai não....
serão sempre seis valores entre as #
>
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.
serão sempre seis valores entre as #
As quantidades irão variar sempre.
A unica coisa que será igual é a quantidade de valor por linha exemplo:
Se a primeira linha tiver 10 valores as próximas linhas terão 10 valores por assim em diante.
beleza... a quantidade de valores entre as # vão ser sempre 6?
Ok... vi depois
>
As quantidades irão variar sempre.
A unica coisa que será igual é a quantidade de valor por linha exemplo:
Se a primeira linha tiver 10 valores as próximas linhas terão 10 valores por assim em diante.
Outro exemplo:
id_tabela | Valores
54 | 4.60# 6.00# 10.50# 1.50# 10.00# 2.68# 18.00# 56.00# 34.89# 6.67# 6.78# 14.89# 64.87
43 | 2.56# 5.65# 11.50# 3.50# 15.00# 6.68# 16.00# 60.00# 44.89# 5.67# 7.78# 10.89# 54.87
34 | 1.65# 4.00# 13.30# 4.50# 13.00# 7.68# 19.00# 70.00# 64.89# 8.67# 9.78# 11.89# 24.87
Resultado que deve mostrar;
** 1.65**- **4.00**- **10.50**- **1.50**- **10.00**- **2.68**- **16.00**- **56.00**- **34.89**- **5.67**- **6.78**- **10.89**- **24.87**
Entendeu?
>
beleza... a quantidade de valores entre as # vão ser sempre 6?
Ok... vi depois
A quantidade de valores entre # sempre varia.
e quantidade de linhas tbm
Cara... acho que vc terá resolver isso com instruçao sql.... talvez seja até mais fácil..
Cara... acho que você terá resolver isso com instruçao sql.... talvez seja até mais fácil..
Eu não manjo muito.
Será que ajuda isso...
while(...){
[...]