Aller au contenu

Fonctionnement PHP/Mysql étrange


sandrinoo

Sujets conseillés

Bonjour,

Mon probleme est tout simple mais il me semble bien étrange.

J'ai un site avec une base de donnée Mysql qui fonctionnait parfaitement pendant 3 ans, utilisant un classement classique de petites news par date avec une requête imbriquée "ORDER BY" (les dernières news étant affichées en premier) :

SELECT * FROM bd WHERE data1='oui' AND data2<'100' AND data3 !='' ORDER BY temps DESC LIMIT 10

Du jour au lendemain, il y a 2 semaines tout s'est figé à une date précise : mon site affiche toujours les mêmes news sans renouvellement (le classement ne se faisant plus sur les derniers enregistrements).

Pourtant la base mysql continue d'enregistrer normalement les derniers enregistrements.

En fait le système fonctionne normalement en classant les news par date jusqu'au 18 mai (et les news qui suivent après le 18 mai apparaissent sur le site mais en tout dernier ==> donc non classées).

Bref, le classement ne se fait que sur une portion de la base (jusqu'à l'enregistrement n°63227) et ne se fait plus sur les derniers enregistrements (à partir du n°63228). En tout il y en a 63900 actuellement avec 15 champs pour une taille totale de 15,3 Mio. Le trafic est faible sur ce site.

Mon hebergeur me confirme qu'il n'y a pas de problème serveur ou de restriction sur ma base de données, pas non plus de mise à jour récemment de la BD, pas de pb de taille car ma base n'est remplie qu'aux 1/4.. Je n'ai rien changé à mon code PHP non plus.

D'où le problème peut-il bien venir ? Si vous aviez une idée parce que je ne trouve pas la solution depuis plusieurs jours et je commence à criser sérieux !

Merci d'avance à celui ou celle qui me répondra.

Sandrine

Lien vers le commentaire
Partager sur d’autres sites

Quel est le type du champ "temps"? Je suppose que tu as aussi validé que le champ en question contient bien les bonnes valeurs pour les lignes "récentes"?

Je suppose que le résultat de la requête est le même via ton script PHP qu'"en direct" (via phpmyadmin ou mysql en ligne de commande)?

Peut-être un problème d'index corrompu? Tu as essayé CHECK TABLE et éventuellement REPAIR TABLE? Attention: bien lire la doc et faire un backup avant!

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

as tu mis ton champ date en format date ? Si non, tu peut le mettre en varchar, et en php envoyer la valeur AAAAMMJJ. Donc d'abord l'an, le mois et le jour. Ainsi, il prendra automatiquement la dernière.

Cordialement,

Lien vers le commentaire
Partager sur d’autres sites

Merci tous les 2 pour vos réponses (avec beaucoup de retard).

Après différentes tentatives (réparation base, etc) j'ai dû supprimer la base et la réinstaller totalement avec un fichier enregistré antérieurement.

Il y avait eu des choses de corrompues je ne sais pas pourquoi.

Tout remarche désormais.

Merci.

sandy.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...