Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

exibindo o registro errado

13-12-2010 08:24

Bom dia Galera !

Estou com um problema na exibição de um registro vindo da tabela, esta exibindo o registro de outra data , não a selecionada.

tipo:
Solicito a exibição dos registros do dia 05/12/2010 e estão sendo exibidos os do dia 05/09/2010 , isto só veio a ocorrer agora, podendo ser visto no site http://www.cccbvr.com.br
no menu campeonato --> cccbvr --> curio ( qualquer um ) --> campeonato de verão --> aqui você escolhe a data .
o problema são só com as datas 05/12/2010 12/12/2010 19/12/2010 pois mostram os registros dos dias 05/09/2010 12/09/2010 19/09/2010 , sendo que os do dia 19 , embora ainda não tenham sidos inseridos, ja estão com estes erros .

como resolver ?
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

exibindo o registro errado

13-12-2010 10:10

O problema é que o campo data_temp esta em VARCHAR(10), acredito que este seja o pq , pesquisando na web fiz a seguinte modificação:
$query_campeonato = sprintf("SELECT tempo.id_time, tempo.id_torneio, tempo.id_campeonato, tempo.data_temp, tempo.min_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal, tempo.data_temp, tempo.ponto_temp FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND tempo.data_temp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", GetSQLValueString($colname_campeonato, "date"),GetSQLValueString($coltor_campeonato, "int"));

para:
$query_campeonato = sprintf("SELECT tempo.id_time, tempo.id_torneio, tempo.id_campeonato, tempo.data_temp, tempo.min_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal, DATE_FORMAT(STR_TO_DATE(tempo.data_temp, '%d/%m/%Y'),'%d/%m/%Y') AS datatemp, tempo.ponto_temp FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND datatemp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", GetSQLValueString($colname_campeonato, "date"),GetSQLValueString($coltor_campeonato, "int"));

o erro agora é:
Warning: sprintf() [function.sprintf]: Too few arguments in C:\........\campeonatodatatempo.php on line 72
Query was empty
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

exibindo o registro errado

13-12-2010 12:48

Parece que está usando várias tabelas, quando faz isso, pode algumas vezes pegar dados de outra tabela. Nesse caso, você pode definir a data específica de uma tabela, e usar o AS.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

exibindo o registro errado

13-12-2010 15:59

Utilizo varias tabelas sim , porem a data vem de uma só, corrigi um erro mas continua dando errado :
$query_campeonato = sprintf("SELECT tempo.id_time, tempo.id_torneio, tempo.id_campeonato, STR_TO_DATE(tempo.data_temp, '%d/%m/%Y') AS datatemp, tempo.min_temp, tempo.ponto_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND datatemp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", GetSQLValueString($colname_campeonato, "date"),GetSQLValueString($coltor_campeonato, "int"));

ou

$query_campeonato = sprintf("SELECT tempo.id_time, tempo.id_torneio, tempo.id_campeonato, DATE_FORMAT(STR_TO_DATE(tempo.data_temp, '%d/%m/%Y'),'%d/%m/%Y') AS datatemp, tempo.min_temp, tempo.ponto_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND datatemp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", GetSQLValueString($colname_campeonato, "date"),GetSQLValueString($coltor_campeonato, "int"));

Continua o erro:
Warning: sprintf() [function.sprintf]: Too few arguments in C:\........\campeonatodatatempo.php on line 72
Query was empty

no menu quando chamo o link esta desta forma ?
http://www.cccbvr.com.br/campeonatodata ... 0&id_tor=8

Veja que a data é 05/12/2010 e torneio 8 , me mostra o torneio 8 mas com a data 05/09/2010 , não esta considerando todo os dados dentro da coluna "05/12/2010" .
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

exibindo o registro errado

13-12-2010 23:08

Não vi na query onde pega o valor $dia e compara com os dados do BD.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

exibindo o registro errado

14-12-2010 07:41

primeiro :
STR_TO_DATE(tempo.data_temp, '%d/%m/%Y') AS datatemp

depois :
datatemp = %s

$colname_campeonato = "-1"; if (isset($_GET['id_tor'])) { $colname_campeonato = $_GET['id_tor']; } $coltor_campeonato = "-1"; if (isset($_GET['dia'])) { $coltor_campeonato = $_GET['dia']; } mysql_select_db($database_curio, $curio); $query_campeonato = sprintf("SELECT tempo.id_time, tempo.id_torneio, tempo.id_campeonato, STR_TO_DATE(tempo.data_temp, '%d/%m/%Y') AS datatemp, tempo.min_temp, tempo.ponto_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND datatemp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", GetSQLValueString($colname_campeonato, "date"),GetSQLValueString($coltor_campeonato, "int")); $campeonato = mysql_query($query_campeonato, $curio) or die(mysql_error()); $row_campeonato = mysql_fetch_assoc($campeonato); $totalRows_campeonato = mysql_num_rows($campeonato);

Funcionava perfeito, agora começou a dar este erro das datas, antes utilizava de forma simples, apenas tempo.data_temp , só que começou a dar o erro de mostrar outra data, em pesquisa na web vi sobre o STR_TO_DATE e o DATE_FORMAT para os casos de se usar VARCHAR no campo data em vez de DATE, agora tenho aproximadamente 2 mil registros e nestas datas estão dando este erro, e só com os curiós, onde esta repetindo o dia 05 12 19 do mes 9 e 12, é como se estivesse lendo somente o dia e trazendo os registros mais antigos, não fazendo o a leitura completa dia , mes e ano.

esta é a forma utilizada antes:
$colname_campeonato = "-1"; if (isset($_GET['id_tor'])) { $colname_campeonato = $_GET['id_tor']; } $coltor_campeonato = "-1"; if (isset($_GET['dia'])) { $coltor_campeonato = $_GET['dia']; } mysql_select_db($database_curio, $curio); $query_campeonato = sprintf("SELECT tempo.id_time, tempo.id_torneio, tempo.id_campeonato, tempo.data_temp, tempo.min_temp, tempo.ponto_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND tempo.data_temp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", GetSQLValueString($colname_campeonato, "date"),GetSQLValueString($coltor_campeonato, "int")); $campeonato = mysql_query($query_campeonato, $curio) or die(mysql_error()); $row_campeonato = mysql_fetch_assoc($campeonato); $totalRows_campeonato = mysql_num_rows($campeonato);

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

exibindo o registro errado

14-12-2010 08:27

O que acho que pode estar acontecendo é que o padrão de uso dessas funções, é mm/dd/aaaa, como o seu está em formato diferente, pode estar dando esse conflito. Acho que o ideal seria ordenar da forma tradicional, como estava usando.

No link abaixo tem alguns exemplos
http://www.java2s.com/Tutorial/MySQL/02 ... 000mdY.htm
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

exibindo o registro errado

14-12-2010 15:04

Estava tudo funcionando sertinho até aparecer estas datas, onde esta ocorrendo o conflito, só na parte dos Curiós .

Uma coisa que não entendo, como esta em VARCHAR e não em DATE a coluna data_temp , ela não teria de lida por inteiro ?
Pois no menu eu chamo a data de forma correta 05/12/2010 e me mostra o resutado do dia 05/09/2010, ai esta acabando comigo, será q vou ter q transformar a coluna em DATE ? e corrigir 2000 registros ?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

exibindo o registro errado

14-12-2010 15:08

É possível que dê problema, mas, tente simular alteração em um registro somente, ou, tente usar mm/dd/aaaa
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 390
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

exibindo o registro errado

14-12-2010 19:05

Resolvido , na classificação da query estava como int ( inteiro ) , coloquei como texto e ficou ok.

antes
$colname_campeonato = "-1"; if (isset($_GET['id_tor'])) { $colname_campeonato = $_GET['id_tor']; } $coltor_campeonato = "-1"; if (isset($_GET['dia'])) { $coltor_campeonato = $_GET['dia']; } mysql_select_db($database_curio, $curio); $query_campeonato = sprintf("SELECT tempo.id_time, tempo.id_torneio, tempo.id_campeonato, tempo.data_temp, tempo.min_temp, tempo.ponto_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND tempo.data_temp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", ---------- errado ------->>>> GetSQLValueString($colname_campeonato, "date"),GetSQLValueString($coltor_campeonato, "int")); $campeonato = mysql_query($query_campeonato, $curio) or die(mysql_error()); $row_campeonato = mysql_fetch_assoc($campeonato); $totalRows_campeonato = mysql_num_rows($campeonato);

agora
$colname_campeonato = "-1"; if (isset($_GET['id_tor'])) { $colname_campeonato = $_GET['id_tor']; } $coltor_campeonato = "-1"; if (isset($_GET['dia'])) { $coltor_campeonato = $_GET['dia']; } mysql_select_db($database_curio, $curio); $query_campeonato = sprintf("SELECT tempo.data_temp, tempo.id_time, tempo.id_torneio, tempo.id_campeonato, tempo.min_temp, tempo.ponto_temp, tempo.desempate_temp, campeonato.clube, campeonato.modalidade, campeonato.passaro, campeonato.anilha, campeonato.proprietario, campeonato.origem, torneio.id_tor, torneio.torneio, torneio.tipo, torneio.carac, torneio.datainicio, torneio.datafinal FROM tempo, campeonato, torneio WHERE tempo.id_torneio = %s AND tempo.data_temp = %s AND torneio.id_tor = tempo.id_torneio AND tempo.id_campeonato = campeonato.id_camp ORDER BY tempo.ponto_temp DESC", ---------- certo ------->>>> GetSQLValueString($colname_campeonato, "int"),GetSQLValueString($coltor_campeonato, "text")); $campeonato = mysql_query($query_campeonato, $curio) or die(mysql_error()); $row_campeonato = mysql_fetch_assoc($campeonato); $totalRows_campeonato = mysql_num_rows($campeonato);

VLW :oops:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17411
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

exibindo o registro errado

14-12-2010 21:20

Bom que conseguiu. ;)
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado