Bonjour à tous.
J'ai créée un chat privé en PHP/MySQL/Javascript pour un site (ça c'est bon ça fonctionne ), seulement en voulant l'uploader sur mon hébergeur (1and1) j'ai vu la phrase suivante :
Citation :
Une base de données MySQL ne doit en aucun cas être utilisée pour des évaluations de log, des clics publicitaires, des systèmes de chat, des systèmes de rotation de bannières, ou toute autre application qui pourrait encombrer votre base de données de charges trop importantes.
|
Génial...
Ne voulant pas me faire bannir de mon hébergement, j'ai alors cherché une nouvelle manière de gérer ma base de données pour sauvegarder les conversations :
1) Je suis premièrement tombé sur le SimpleXML.
J'ai compris le fonctionnement, mais j'ai par contre un problème avec l'encodage des caractères.
Tout au début de mon XML j'ai :
Code :
- <?xml version="1.0" encoding="ISO-8859-1"?>
|
Au début de ma page PHP j'ai :
Code :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- </head>
- <body>
|
Malgré tout à chaque fois que je veux ajouter du contenu à mon XML, pour ne pas avoir de problèmes avec les accents, je dois ajouter les lignes suivantes :
Code :
- $chaine = 'chapitre';
- $chaine = utf8_encode($chaine);
|
Et pour la lecture du XML les lignes suivantes :
Code :
- $chaine = $chapitre->titre;
- $chaine = utf8_decode($chaine);
|
Avec ça, ça marche, mais vu comment ça n'est pas pratique, je me dis qu'il doit quand même y avoir un problème!
Quelqu'un a une solution?
2) Ce matin j'ai découvert SQLite.
Ca a l'air d'être une alternative intéressante, surtout que mon code MySQL est déjà fait et que ça y ressemble pas mal, mais j'ai lu que certaines fonctions MySQL n'étaient pas prises en compte par SQLite.
Voici les requêtes MySQL que j'utilise :
Code :
- mysql_query("SELECT ami_from, ami_to, ami_date, ami_lastpost, membre_pseudo, membre_avatar, online_id, conv_texte, conv_date, conv_pseudo, conv_id
- FROM forum_amis
- LEFT JOIN forum_membres ON membre_id = ami_from
- LEFT JOIN forum_whosonline ON online_id = ami_from
- LEFT JOIN chat_prive ON chat_prive.conv_id = forum_amis.ami_lastpost
- WHERE ami_to = '".$_SESSION['id']."' AND ami_confirm = '1'
- ORDER BY ami_date, online_id DESC" );
|
Code :
- mysql_query("SELECT * FROM chat_prive WHERE conv_from = $am_from && conv_to = $am_to || conv_from = $am_to && conv_to = $am_from ORDER BY conv_id DESC LIMIT 0,50" );
|
Code :
- mysql_query("INSERT INTO chat_prive VALUES('', '$am_from', '$am_to', '$conv_texte', '".$temps."', '$conv_pseudo')" );
|
Code :
- $derniermess = mysql_insert_id();
|
Code :
- mysql_query("UPDATE forum_amis SET ami_lastpost = '".$derniermess."' WHERE ami_from = '".$am_from."' && ami_to = '".$am_to."' || ami_to = '".$am_from."' && ami_from = '".$am_to."' " );
|
Je voudrais savoir si je ne risque pas d'avoir des problèmes pour le passage du MySQL au SQLite, et lequel, entre SimpleXML et SQLite, serait plus adapté à mes besoins (chat, donc il risque d'y avoir beaucoup de texte) ?
Merci pour vos réponses.