PDA

Voir la version complète : Résolu [RESOLU] probleme dans la base(interclassement)


symptote1
27/01/2008, 11h38
salut à tous,
j'ai constaté ces jours là que j'ai probleme dans la base, le probleme se produit lorsque je clique sur "Utilisateurs actuellement connectés" en bas du forum, une page d'erreur s'affiche en m'indiquant qu'il ya une erreur :

http://img150.imageshack.us/img150/298/nouveauimagebitmap3kj2.png


des fois meme si je clique sur "Utilisateurs actuellement connectés" tout est normal mais des fois je reçois cette erreur

voici l'erreur :
----------------------------------------------
Database error in vBulletin 3.6.8:

Invalid SQL:

SELECT searchid, search.userid, query, searchuser, user.userid AS targetuserid
FROM search AS search
LEFT JOIN user AS user ON (user.username = search.searchuser)
WHERE searchid IN (0,577);

MySQL Error : Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_german1_ci,IMPLICIT) for operation '='
Error Number : 1267
Date : Sunday, January 27th 2008 @ 12:04:23 PM
Script : http://www.*******.com/online.php
Referrer : http://www.*******.com/
IP Address : 81.192.40.160
Username : admin
Classname : vb_database
-----------------------------------------------

si quelqu'un peut m'aider je serai trés reconnaissant:)

Ombre
27/01/2008, 11h46
Slt,

A priori mais n'étant pas un spécialiste des db, je pense que tu as une table qui est codé avec le mauvais langage (deux latin différent), te dire comment faire pour remettre comme il faudrait est une autre affaire, tu as regarder du coté de ces table directement via phpmyadmin pour essayer de mettre le bon langage?

symptote1
27/01/2008, 11h59
oui, j'ai verifié toutes les tables , elles sont toutes en latin1_german1_ci
je vois que d'aprés le code d'erreur le probleme vient des deux tables "user" et "search", mais ces deux tables sont en latin-german1_ci , alors pourquoi il me dit " Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_german1_ci,IMPLICIT) " alors qu'il n y a aucune table en "latin1_swedish_ci" ?? bizzare

Sofia
27/01/2008, 15h23
Vas dans Admin CP->Maintenance->Exécution d'une requête SQL.

Dans requête manuelle, saisi cela :

SHOW VARIABLES LIKE 'char%'

puis clique sur Continuer.

dis moi ce que tu obtient.

symptote1
27/01/2008, 20h37
lorsque je clique sur "Exécuter une requete SQL" un message apparait me disant : "Vous n'êtes pas autorisé à exécuter des requêtes SQL.". comment faire pour l'activer

Red
27/01/2008, 21h09
Pour pouvoir exécuter des requêtes SQL à partir du panneau d'administration:

Il te faut simplement , dans le fichier config.php dans le dossier include de ton forum

Modifier cette ligne :

$config['SpecialUsers']['canrunqueries'] = '';


En :

$config['SpecialUsers']['canrunqueries'] = '1';


1 est biensur l'iD de l'utilisateur qui peux éffectué cette commande.

symptote1
27/01/2008, 22h02
Il te faut simplement , dans le fichier config.php dans le dossier include de ton forum

Modifier cette ligne :

$config['SpecialUsers']['canrunqueries'] = '';
En :
$config['SpecialUsers']['canrunqueries'] = '1';
1 est biensur l'iD de l'utilisateur qui peux éffectué cette commande.

Merci beaucoup, c'est fait

Vas dans Admin CP->Maintenance->Exécution d'une requête SQL.

Dans requête manuelle, saisi cela :

SHOW VARIABLES LIKE 'char%'puis clique sur Continuer.

dis moi ce que tu obtient.

voisi ce que j'obtient :

character_set_client ...................latin1

character_set_connection ...........latin1

character_set_database............... latin1

character_set_filesystem ............binary

character_set_results ................latin1

character_set_server................ latin1

character_set_system ...............utf8

character_sets_dir .................../opt/mysql/share/mysql/charsets/

Sofia
27/01/2008, 23h44
oui, j'ai verifié toutes les tables , elles sont toutes en latin1_german1_ci
je vois que d'aprés le code d'erreur le probleme vient des deux tables "user" et "search", mais ces deux tables sont en latin-german1_ci , alors pourquoi il me dit " Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_german1_ci,IMPLICIT) " alors qu'il n y a aucune table en "latin1_swedish_ci" ?? bizzare

Les champs cités dans la requête sont également tous en latin1_german1_ci ?

symptote1
28/01/2008, 00h43
en vérifiant bien le code j'ai constaté que l'erreur vient de l'attribut "username" dans la table "user", j'ai vu les differents occurences de cette tables et j'ai constaté qu'elles sont en "latin1_swedish_ci" meme si la table entiere est en "latin1_german1_i". alors j'ai changé l'interclassement de ces attributs et surtout celui qui me faisait le probleme "username", je n'aurais plus de probleme je suis sur !
merci pour votre support :)

Sofia
28/01/2008, 08h46
en vérifiant bien le code j'ai constaté que l'erreur vient de l'attribut "username" dans la table "user", j'ai vu les differents occurences de cette tables et j'ai constaté qu'elles sont en "latin1_swedish_ci" meme si la table entiere est en "latin1_german1_i". alors j'ai changé l'interclassement de ces attributs et surtout celui qui me faisait le probleme "username", je n'aurais plus de probleme je suis sur !
merci pour votre support :)

Oui, des fois, il arrive qu'un champ ne soit pas du même jeu de caractères que sa table, d'où la comparaison impossible :)