Algien que sepa php y consultas SQL

Topic created · 4 Mensajes · 456 Visitas
  • Tengo un problema al cambiar a los files 2010 la tabla de rank me tira este error
    PHP Error Message

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a6721784/public_html/includes-public/classement.php on line 119

    Free Web Hosting
    Erreur SQL !
    SELECT account_id,name,level,level_step,exp,job,skill_group FROM player WHERE name NOT IN(SELECT mName FROM common.gmlist) ORDER BY level DESC, exp DESC LIMIT 0, 5
    Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (big5_chinese_ci,IMPLICIT) for operation '='

    Quisiera saber si alguien le paso lo mismo o si saben como solucionarlo estoy seguro que es por la diferencia de estrucutras en las tablas del navicat pero no tengo idea como solucionarlo si alguien puede ayudar les agradeceria mucho me baso en la web de SmD.o7 espero su ayuda y gracias. :wiii:

  • Pásanos la línea 119 de aquí: /home/a6721784/public_html/includes-public/classement.php

  • el problema esta en que las tablas tienen una codificación de caracteres distintas, por lo que no son compatibles para utilizar en una misma consulta, para arreglarlo debes cambiar la codificación de una de las dos tablas, para lograrlo sin perder datos debes

    1-hacer un backup en un archivo .sql de la tabla.
    2-abres ese archivo con notepad++ y buscas donde diga CHARSET=xxxx; (las xxx son ejemplo de que puede decir cosas distintas).
    3-escribes el tipo de codificación que quieres en la tabla (debe ser el mismo de la otra tabla que vayas a usar en la consulta para que sean compatibles).

  • @carlospok said:

    Pásanos la línea 119 de aquí: /home/a6721784/public_html/includes-public/classement.php

    mysql_select_db('player');
    $retour = mysql_query("SELECT COUNT(*) AS nb_player FROM player WHERE name NOT IN(SELECT mName FROM common.gmlist)");
    Linea 119>> $donnees = mysql_fetch_array($retour);

    //Nombre total de joueurs
    $total = $donnees['nb_player'];
    //Rang à partir du quel on affiche le classement
    if(isset($_GET['r']) and $_GET['r']>0){$rang=$_GET['r'];} else {$rang=0;}
    //Nombre de joueurs à afficher dans le classement
    $nb_perso_page=$CONFIG_classement['nb_perso_page'];
    //Page suivante
    $next_rang=$rang+$nb_perso_page;
    //Page précédente


    @Aquiles94 said:

    el problema esta en que las tablas tienen una codificación de caracteres distintas, por lo que no son compatibles para utilizar en una misma consulta, para arreglarlo debes cambiar la codificación de una de las dos tablas, para lograrlo sin perder datos debes

    1-hacer un backup en un archivo .sql de la tabla.
    2-abres ese archivo con notepad++ y buscas donde diga CHARSET=xxxx; (las xxx son ejemplo de que puede decir cosas distintas).
    3-escribes el tipo de codificación que quieres en la tabla (debe ser el mismo de la otra tabla que vayas a usar en la consulta para que sean compatibles).

    Hola tenias razon estaban en diferentes codificaciones pero te comento que puse la tabla gmlist y la tabla player que segun veo es a la que pide consultas pues les puse la misma codificacion pero me sige dando el mismo error alguna idea? de lo que pueda estar fallando? saludos y gracias.
    $prev_rang=$rang-$nb_perso_page;