count() multiples
Posté : 16 sept. 2008, 16:03
Bonjour,
je travail actuellement sur un site "banale" niveau code, et je dois récupérer le nombre de message lu/non-lu de chaque membres, jusqu'ici pas de problème, je les récupère à intervalle régulière. Seulement, pour diminuer encore le nombre de requêtes, je vais faire un cache SQL, c'est à dire que le compte des lectures/non-lecture/ajout/supression sera fait au fur et à mesure, ainsi je pourrais récupérer tout les nombres d'un coup. Seulement, par mesure de sécurité, et parce que je sais que rien n'est infaillible. J'aimerais faire un re-compte "naturel" périodiquement. Pour le périodiquement, pas de problème, mais voilà, comment faire un count() "multiple", voilà comment je le schématiserais en PHP :
Cecis marche pour 1 membre, comment faire ça pour tous, sans faire péter le serveur
Par avance merci de votre aide
PS : je suis sous PostGreSQL 8.3.3
je travail actuellement sur un site "banale" niveau code, et je dois récupérer le nombre de message lu/non-lu de chaque membres, jusqu'ici pas de problème, je les récupère à intervalle régulière. Seulement, pour diminuer encore le nombre de requêtes, je vais faire un cache SQL, c'est à dire que le compte des lectures/non-lecture/ajout/supression sera fait au fur et à mesure, ainsi je pourrais récupérer tout les nombres d'un coup. Seulement, par mesure de sécurité, et parce que je sais que rien n'est infaillible. J'aimerais faire un re-compte "naturel" périodiquement. Pour le périodiquement, pas de problème, mais voilà, comment faire un count() "multiple", voilà comment je le schématiserais en PHP :
$pdo->query("SELECT count(*) AS non_lu FROM messages WHERE etat='0' AND fk_membre='$fk_membre'; SELECT count(*) AS total WHERE AND fk_membre='$fk_membre';");
//...
$pdo->exec("UPDATE messages SET non_lu='$non-lu', total='$total' WHERE fk_membre='$fk_membre'");
Bon, j'ai fais ça vite fait, sans les méthodes préparé ni le fetch, et je doûte de la validité des requête, mais c'est pour votre compréhension.Cecis marche pour 1 membre, comment faire ça pour tous, sans faire péter le serveur
Par avance merci de votre aide
PS : je suis sous PostGreSQL 8.3.3