manolegal 12 Denunciar post Postado Junho 1, 2011 Ola amigos do Forum. Tenho muitas dificuldades na manipulacao de arrays. Desde ja peço desculpas se escrever algo inadequado Preciso comparar dois campos diferentes em linhas diferentes dentro de um array. Estou usando banco de dados Postgre. Tenho o seguinte codigo. include("executa.php"); $Sql = "SELECT id_deslocamento, km_saida, km_retorno FROM veiculos_deslocamentos WHERE veiculo_id = '$veiculo_id' AND ('$km_retorno_formato' BETWEEN km_saida AND km_retorno)"; $Resultado = executa($Sql); $total_registros = pg_num_rows($Resultado); while ($linha = pg_fetch_array($Resultado)){ $id_lancado = $linha["id_deslocamento"]; $km_saida_bd = $linha["km_saida"]; $km_retorno_bd = $linha["km_retorno"]; Neste caso, $total_registros, retornou 02 linhas. Preciso comparar '$km_saida_bd' da linha 1 com '$km_retorno_bd' para ver se ambos sao iguais. Gostaria da ajuda dos amigos. Desde já agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 1, 2011 Não entendi, o que eu entendi foi: <?php $Array1 = Array( 1 => 'Um', 2 => 'Dois', 3 => 'Três' ); $Array2 = Array( 1 => 'Um', 2 => 'Dois', 3 => 'Três' ); for( $i = 1; $i <= sizeOf( $Array1 ); ++$i ){ if( $Array1[ $i ] == $Array2[ $i ] ){ echo $i, '| True', '<br />'; }else{ echo $i, '| False', '<br />'; } } Saída: 1| True 2| True 3| True <?php $Array1 = Array( 1 => 'Um', 2 => 'Dois', 3 => 'Três' ); $Array2 = Array( 1 => 'Ums', 2 => 'Doiss', 3 => 'Três' ); for( $i = 1; $i <= sizeOf( $Array1 ); ++$i ){ if( $Array1[ $i ] == $Array2[ $i ] ){ echo $i, '| True', '<br />'; }else{ echo $i, '| False', '<br />'; } } Saída: 1| False 2| False 3| True Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Junho 2, 2011 Ola Andrey, obrigado pelo retorno. É o seguinte. A consulta $Sql retornou 02 linhas: id_lancado km_saida_bd km_retorno_bd Linha 1 1 1 50 Linha 2 2 50 80 Na verdade eu queria fazer uma comparacao para saber se o 'km_retorno_bd' da Linha 1 é igual ou nao ao 'km_saida_bd' da Linha 2. Espero ter conseguido explicar. No aguardo. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 5, 2011 Poste o resultado disso. <?php include("executa.php"); $Sql = "SELECT id_deslocamento, km_saida, km_retorno FROM veiculos_deslocamentos WHERE veiculo_id = '$veiculo_id' AND ('$km_retorno_formato' BETWEEN km_saida AND km_retorno)"; $Resultado = executa($Sql); while( $linha = pg_fetch_assoc( $Resultado ) ) { $result[] = $linha } echo '<pre>'; var_dump( $result ); ?> Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Junho 5, 2011 Ola Carlos. Obrigado pela ajuda. Retornou o seguinte: array(2) { [0]=> array(2) { ["km_saida"]=> string(5) "51203" ["km_retorno"]=> string(5) "51252" } [1]=> array(2) { ["km_saida"]=> string(5) "51165" ["km_retorno"]=> string(5) "51203" } } O que eu preciso é inserir um coigo para comparar o "km_saida" e "km_retorno" dos dois arrays, neste caso "51203". Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 6, 2011 você quer array(2) { [0]=> array(2) { ["km_saida"]=> string(5) "51203" // pegar esse valor ["km_retorno"]=> string(5) "51252" } [1]=> array(2) { ["km_saida"]=> string(5) "51165" ["km_retorno"]=> string(5) "51203" // e comparar com esse } } É isso ? Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Junho 6, 2011 Exatamente isso Carlos. Se os valores dos campos forem iguais, eu prossigo o código, caso contrário encerro o código. A dificuldade é criar o código para comparar os campos. No aguardo. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 6, 2011 Mude o código para: <?php include("executa.php"); $Sql = "SELECT id_deslocamento, km_saida, km_retorno FROM veiculos_deslocamentos WHERE veiculo_id = '$veiculo_id' AND ('$km_retorno_formato' BETWEEN km_saida AND km_retorno)"; $Resultado = executa($Sql); while( $linha = pg_fetch_assoc( $Resultado ) ) { $km_saida[ ] = $linha[ 'km_saida' ]; $km_retorno[ ] = $linha[ 'km_retorno' ] } if( reset( $km_saida ) == end( $km_retorno ) ) { echo 'iguais'; } else { echo 'diferentes'; } ?> Acho que isso resolve seu problema :lol: Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Junho 6, 2011 Carlos. Alterei o código, e ao executá-lo aparece a seguinte mensagem: Fatal error: [] operator not supported for strings in /var..... Em referencia a linha "$km_saida[ ] = $linha['km_saida'];". Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 6, 2011 Se já existe variáveis com estes nomes antes desta parte do código, você terá que mudar os nomes das variáveis que utilizei Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Junho 6, 2011 Beleza Carlos. Alterei os nomes das variaveis e resultou "iguais", tudo certo. Obrigado mesmo pela força. Um grande abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 6, 2011 Ok, Bons estudos :lol: Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Junho 9, 2011 Valeu. Um grande abraço. Podem fechar o tópico. Compartilhar este post Link para o post Compartilhar em outros sites