granito - Fórum Script Brasil
granito replied to granito's question in MySQL
Ok, resolvido! Eu fiz o que você propôs, mas o problema continuou. Depois, eu renomeei o 'out' pra 'oct' e funcionou! Provavelmente o MySQL tava interpretando o 'out' como um comando, daí o problema. Obrigado, cara. Valeu pela atenção. Abraço. PS.: Eu concordo absolutamente com tua assinatura. Tenho isso como lema.
Alterei os TYPEs manualmente mesmo. Mas, por favor, não feche o tópico ainda, por que algo me diz que esse não é o único problema da query inicial. EDIT: O problema continua ao tentar SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, out, nov, dez, id, id AS kt_pk_alunos FROM alunos WHERE id = 3 WTF? EDIT 2: Continua só funcionando até SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, id, id AS kt_pk_alunos FROM alunos EDIT 3: Tentei isso SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, nov, dez, id, id AS kt_pk_alunos FROM alunos e funcionou. A query está sem o
Certo, funcionou até SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, id FROM alunos Arg! Já desconfiava que era culpa do cara que fez a tabela... :angry: Onde já se viu fazer uma table tão grande só com TEXT?! Mas, enfim, há um comando eu possa usar para mudar o tipo das colunas de TEXT pra VARCHAR?
granito replied to turha's question in MySQL
As entradas de sua tabela não tem registro de data? Tendo um fórum, imagino que sim. Se sim, o MySQL usa o padrão de data americano, então você pode usar esse código, ou algo parecido: $mes = "mm"; $ano = "aaaa"; $dia = "dd"; $query = mysql_query("SELECT * FROM tabela WHERE data_coluna<'$ano-$mes-$dia'"); while($row==mysql_fetch_array($query)){ // aqui você passa os valores em $row[] para as strings, usando $utf8_decode() nos campos necessários, e então faz o UPDATE } Mas só execute isso aí depois de ter desfeito isso SELECT CONVERT(meucampo USING utf8) FROM minhatabela; , ou as co
Certo, entendi. Acho que sei o que está acontecendo. Acesse a tabela (via phpmyadmin, ou algo assim) e verifique se as entradas anteriores à mudança de servidor estão corretamente acentuadas. Creio que não estejam. <SE-EU-ESTIVER-CERTO> quanto à isso, creio que a única solução seja criar um script para - acessar os dados antigos, - tratá-los com utf8_decode e então - fazer um UPDATE na tabela. Uma alternativa seria fazer as correções manualmente. Mas acho que você não vai querer fazer isso. :P </SE-EU-ESTIVER-CERTO> Talvez haja uma outra forma, mas se há, desconheço. Um abra
Se entendi bem, os novos registros feitos após a mudança de server estão sendo guardados com caracteres inválidos. Seria isso? Ou talvez, somente até os caracteres acentuados? Estou supondo isso porque já passei por esse problema. Qual o charset da página? Qual a collation do BD? Qual a collation da coluna? Veja o que acontece se você adicionar a linha de código abaixo logo após o mysql_connect() no arquivo de conexão com o banco. mysql_query("SET NAMES 'utf8'");
Que linguagem de programação você usa? No caso do PHP, você pode usar as funções utf8_encode() ou uft8_decode() nas strings, sem ter de mexer no BD. Qual das duas usar vai depender da collation do banco de dados. Testa uma. Não funcionando, você testa a outra. Creio que ASP também tenha funções similares.
(Resolvido) Como fazer select pelo mês(date)?
granito replied to Tchello's question in MySQL
Tchello, suponho que isso lhe sirva: SELECT * FROM tabela WHERE MONTH(data_coluna)=$mes , onde $mes, obviamente, é um mês atual.
Ainda sem funcionar. Acho que vale acrescentar que, estranhamente, o phpmyadmin está adicionando "LIMIT 0 , 30" à todas as consultas realizadas nessa table. O erro retornado: Eu estou usando a versão 5.0 do MySQL Server.
Denis, Sim, o nome da tabela realmente é 'alunos'. estou às cegas, então? Deixei um tópico no fórum do Mysql pela manhã, mas, até agora, ninguém respondeu. beleza, valeu mesmo cara, brigadão pela ajuda. ;)
Não, nenhuma delas funciona. Agora me veio algo: seria pelo fato de esses campos, exceto por 'id' não serem índices?
Oi, Denis. Não, não posso. Essa query foi gerada automaticamente pelo sistema no qual estou trabalhando e pra ser sincero, não sei o que esse ".(MUPD_RS)" significa. De qualquer forma, tentei fazer a mesma cosulta, dessa vez sem esse tal ".(MUPD_RS)", e o erro continua. BTW, pode me explicar o que é esse MUPD_RS?
granito posted a question in MySQL
Olá, pessoal! Eu sou novo aqui, e relativamente novo no mysql. estou quebrando a cabeça pra tentar resolver um problema com um SELECT, que insiste em dar um erro #1064. Aqui tá a query: SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, out, nov, dez, id, id AS kt_pk_alunos FROM alunos WHERE id = 3.( MUPD_RS ) Alguém aí sabe me dizer qual é o problema aqui? Desde já, agradeço.