Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma coluna na minha tabela que se chama proposta_valorunitário.
Nesta coluna tenho valores separados por #:
proposta_valorunitário
12.00#67.00#42.89#21.89#10.00
54.00#67.00#11.89#21.89#65.00
38.00#89.00#75.89#21.89#37.00
Já estou pegando o menor valor de cada linha da coluna por exemplo:
10.00
11.89
21.89
Até aqui está funcionando, mas, agora preciso mostrar somente o menor valor do resultado de cima exemplo:
10.00
Segue código abaixo:
<?php require_once('Connections/compras_empresa.php'); ?>
<?php
mysql_select_db($database_compras_empresa, $compras_empresa);
$sql='SELECT proposta_valorunitario FROM propostas';
$res = mysql_query($sql,$compras_empresa);
while($escrever=mysql_fetch_assoc($res)){
$listaqtd=($escrever['proposta_valorunitario']);
$resultadoqtd = explode ("#", $listaqtd);
// Sort ordena o resultado
sort( $resultadoqtd );
echo "$resultadoqtd[0]<br/>";
}?>
Me ajudem por favor.
$array = array(4,5,7,1);
array_sort($array);
echo $array[0];Acho que postei errado vou arrumar minha lógica abaixo:
Tenho uma coluna na minha tabela que se chama proposta_valorunitário.
Nesta coluna tenho valores separados por #:
proposta_valorunitário
12.00#67.00#42.89#21.89#10.00
54.00#67.00#11.89#21.89#65.00
38.00#89.00#75.89#21.89#37.00
Uso um explode ("#", $listaqtd); para listar os valores e preciso que mostre o resultado desta forma:
12.00 / 54.00 / 38.00 Linha 1
67.00 / 67.00 / 89.00 Linha 2
42.89 / 11.89 / 75.89 Linha 3
10.00 / 65.00 / 37.00 Linha 4
Depois preciso que mostre o menor valor de cada linha exemplo:
12.00 Linha 1
67.00 Linha 2
11.89 Linha 3
10.00 Linha 4
Segue código abaixo:
<?php require_once('Connections/compras_empresa.php'); ?>
<?php
mysql_select_db($database_compras_empresa, $compras_empresa);
$sql='SELECT proposta_valorunitario FROM propostas';
$res = mysql_query($sql,$compras_empresa);
while($escrever=mysql_fetch_assoc($res)){
$listaqtd=($escrever['proposta_valorunitario']);
$resultadoqtd = explode ("#", $listaqtd);
// Sort ordena o resultado
sort( $resultadoqtd );
echo "$resultadoqtd[0]<br/>";
}?>
Me ajudem por favor e me desculpem por ter postado errado.
Você tem que inverter colunas x linhas?
Vou colocar o link para ver online.
Entendi, precisa comparar as melhores propostas.
Mas neste link você não conseguiu resolver?
Isso mesmo preciso listar as melhores propostas.
E ainda não está resolvido.
Alguém me ajude por favorrrrr. rsrsr
A lógica está aqui:
$rows = array(
'12.00#67.00#42.89#21.89#10.00',
'54.00#67.00#11.89#21.89#65.00',
'38.00#89.00#75.89#21.89#37.00'
);
for( $i = 0; $i < count( $rows ); $i++ )
{
$prices = explode( '#', $rows[ $i ] );
$price = min( $prices );
$result[ sprintf( 'Line %d', $i + 1 ) ] = $price;
}
array_walk(
$rows,
function( $row )
{
static $line = 0;
printf( '%s Line %s<br/>', str_replace( '#', ' / ', $row ), ++$line );
}
);
foreach( $result as $key => $value ) printf( '%02.2f %s<br/>',$value, $key );
}
Agora é só adaptar.
Anderson Hito,
Por favor, me tira uma dúvida se eu estiver errado.
O seu problema residia na lógica ou na compreensão de ocorrência e atributo no banco de dados?
Pois, se for na lógica é uma abordagem pra esse problema.
Se for pelo conhecimento do banco, você poderia criar uma stored procedure pra fazer isso internamente e depois devolveria o valor pra tua aplicação.
Pergunto isso, em um nível bem abstrato, porque já passei por uma situação semelhante onde a questão custo x benefício precisava ser pensada. Se tu precisares desse dado a todo instante, pondere o custo de processamento até você chegar a esse dado.
Abraço.
Beleza isso mesmo meu cliente vai clicar em um botão para listar os menores valores de uma proposta que ele havia cadastrado.
Os valores são cadastrados no banco como o exemplo abaixo:
20.00#15.00# 8.00#0.50#0.50#0.50#12.00#14.00#14.00#0.50#2.20#2.00[/size]
30.00#11.00#10.00#0.40#0.50#0.50#12.00#14.00#14.00#0.50#2.20#2.00[/size]
26.00# 9.00#11.00#0.30#0.50#0.50#12.00#14.00#14.00#0.50#2.20#2.00[/size]
Sendo que:[/size]
O primeiro valor de cada linha é um valor de um produto.[/size]
O segundo valor de cada linha é um valor de outro produto.[/size]
O terceiro valor de cada linha é um valor de outro produto.[/size]
E assim por diante.[/size]
Preciso que mostre o menor valor de cada produto como no exemplo abaixo:[/size]
Campo do banco:[/size]
20.00#15.00# 8.00#0.50#0.50#0.50#12.00#10.00#14.50#0.50#2.25#2.00[/size]
30.00#11.00#10.00#0.40#0.50#0.20#11.00#14.00#15.00#0.50#2.10#1.00[/size]
26.00# 9.00#11.00#0.30#0.50#0.50#12.00#13.00#16.00#0.50#2.30#2.00[/size]
Resultado:
20.00# 9.00# 8.00#0.30#0.50#0.20#11.00#10.00#15.50#0.50#2.10#1.00
CalJr agradeço muito pela atenção e pela ajuda.
Alguém consegue me ajudar?
Armazene os valores em um array e fora do loop while use min para imprimir o menor valor.