Jump to content


Photo

Problema Com Lógica


  • Faça o login para participar
2 replies to this topic

#1 Guilherme Ajax

Guilherme Ajax

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Masculino

Posted 01/08/2007, 11:01

Olá, a todos.....


Quem puder ajudar-me a concretizar uma lógica ficarei realmente MUITOOOOOOOO feliz.

Vou direto ao problema.:

Tenho que criar um relatorio, com o número de vezes em que aconteceu uma volta a um determinado local.

Ex.:

Local 1
Local 2
Local 3
Local 4
Local 2
Local 1
Local 15
Local 1

Preciso criar uma lista que recebera estes valores e ao mesmo tempo em que receba verifica se aquele local já foi listado em algum determinado momento. Caso tiver sido listado já uma pessoa X recebe 1;

Não sei se o tópico esta no lugar certo, acredito que sim;

Preciso apenas de uma ideia para achar uma "LUZ" e transportar para o PHP. Obrigado.

#2 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

Posted 01/08/2007, 17:20

isso ai vai estar m um banco ou em uma seção?

bom de qualquer maneira, cria uam estrutura (em banco ou em uma array) que tenha 2 campos: local e visitas

a primeira coisa é verificar se o tal local existe, se sim incremente no campo visitas deste local, +1, se não, crie o campo local com o campo visitas zerado, ou com 1...

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog

#3 Guilherme Ajax

Guilherme Ajax

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Masculino

Posted 02/08/2007, 08:52

isso ai vai estar m um banco ou em uma seção?

bom de qualquer maneira, cria uam estrutura (em banco ou em uma array) que tenha 2 campos: local e visitas

a primeira coisa é verificar se o tal local existe, se sim incremente no campo visitas deste local, +1, se não, crie o campo local com o campo visitas zerado, ou com 1...


Antes de tudo, obrigado pela resposta ^^...

Então, está no banco. Eu crei uma array como vc disse; Ai o que eu fiz, listei todos os campos "Vou postar aqui está na linguagem PHP, desculpe-me por postar no subforum de logica"

Este aqui é o processo completo - Não finalizado, o que ele faz é listar todos os locais ( terminais ) Vou separa-lo para explica-lo;

<?php
$status = $_GET['status'];
$dtini = $_GET['dtini'];
$dtfim = $_GET['dtfim'];
$es = $_GET['es'];

function formata_data_bd($data_ant){
	$data_nova = explode("/",$data_ant);
	$data_n = $data_nova[2]."-".$data_nova[1]."-".$data_nova[0];
	return $data_n;
}

function pesquisa($dtini, $dtfim){
	$cons_rel = mysql_query("SELECT * FROM relatorio WHERE dtcom >= '$dtini' AND dtcom <= '$dtfim'");	
	return $cons_rel;
}

function criaArray($cons_rel){
	$x = 1;
	while( $row_rel = mysql_fetch_array($cons_rel, MYSQL_ASSOC)){
		$terminal[$x] = $row_rel['terminal'];
		$tecnico[$x] = $row_rel['tecnico'];
		for($y=1;$y<=$x;$y++){
			$term .= $terminal[$y] . " VARIAVEL X = " . $x . "<br>";		
		}
		$x += 1;
	}
	return $term;
}	

if($status == 1){
	$dtini = formata_data_bd($dtini);
	$dtfim = formata_data_bd($dtfim);
	$cons_rel = pesquisa($dtini, $dtfim);
	$term = criaArray($cons_rel);
	echo $term;
}			
?>

Eu faço uma verificação no banco dependendo das datas digitas anteriormente;

function pesquisa($dtini, $dtfim){
	$cons_rel = mysql_query("SELECT * FROM relatorio WHERE dtcom >= '$dtini' AND dtcom <= '$dtfim'");	
	return $cons_rel;
}

E aqui crio a array terminal que passa por um loop que verifica a sua posição e as anteriores. O problema desse tipo de verificação ja deve estar claro. MUITO lento por que lista todos os itens varias vezes. Exemplo se for a primeira, verifica uma vez, segunda duas, terceira tres, 26.520 26.520 vezes. =[

E ainda por cima não obtive o resultado desejado ainda, que apos eu verificar se existe um terminal igual antes adicionar 1 para o determinado tecnico.

function criaArray($cons_rel){
	$x = 1;
	while( $row_rel = mysql_fetch_array($cons_rel, MYSQL_ASSOC)){
		$terminal[$x] = $row_rel['terminal'];
		$tecnico[$x] = $row_rel['tecnico'];
		for($y=1;$y<=$x;$y++){
			$term .= $terminal[$y] . " VARIAVEL X = " . $x . "<br>";		
		}
		$x += 1;
	}
	return $term;
}





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq