Ir para conteúdo
Fórum Script Brasil

granito

Membros
  • Total de itens

    15
  • Registro em

  • Última visita

Posts postados por granito

  1. 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.

  2. 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 campo 'out', o que me leva a crer que é ele que está causando o problema. A pergunta que segue: porquê?

  3. 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?

  4. 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 coisas podem piorar.

    Se não tiver registros de data, você pode ver de que id a que id vão as entradas com valores que foram alterados e então, fazer a $query pelo campo 'id'.

    EDIT: corrigida a query SELECT

  5. 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ço.

  6. 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'");

  7. 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:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'out , nov , dez , id FROM alunos

    LIMIT 0, 30' at line 1

    Eu estou usando a versão 5.0 do MySQL Server.

  8. 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?

  9. 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.

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'out , nov , dez , id , id as kt_pk_alunos FROM alunos WHERE id = 3. ( MUPD_RS ) ' at line 1

    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.

×
×
  • Criar Novo...