bidulesfr
Messages postés25Date d'inscriptiondimanche 11 septembre 2005StatutMembreDernière intervention20 décembre 2007
-
5 janv. 2006 à 07:50
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
6 janv. 2006 à 08:21
Salut,
J'ai un petit soucis dans ce petit script
Il regarde les personnes qui se sont connecté sur le forum. Et réagit en fonction de leur temps d'inactivité (envoi d'un mail, ou autre)
Ici, pour l'exemple, j'ai juste demandé l'affichage à l'arrache des pseudo des 'inactifs' depuis une semaine.
Et la ca bug. Aller soyons fou, disons que il n'y a qu'une personne qui correspond aux criteres. Donc normalement, l'echo me revoi juste une le pseudo.
Or la, il me renvoi le pseudo un paquet de fois. En faite, il le renvoi autant de fois qu'il y a d'entrée dans la table phpbb_user_group avec le groupe 6 (reformulation au cas ou, il renvoi autant de fois le pseudo qu'il y a de personne dans le groupe d'utilisateur que j'ai demandé)
Si le script doit envoyer un mail, ca va vite spammer quelque boite mail tout ca
A mon avi c'est juste la requete sql qui merdouille, mais au cas ou, je donne tout le code.
<?php
$db=mysql_connect($dbhost,$dblogi,$dbpass)or die(mysql_error());
mysql_select_db($dbbase,$db)or die(mysql_error());
$sql="SELECT *
FROM phpbb_users U, phpbb_user_group UG, select_team STWHERE U.user_id ST.user_id UG.user_id
AND UG.group_id = 6
ORDER BY `user_lastvisit` DESC";
$res=mysql_query($sql, $db) or die (mysql_error());
while ($donnees = mysql_fetch_array($res) )
{
//La fait des variable inutile, mais je trouve ca plus simple à manipuler ;)
$avi = $donnees['avi']; // On colle l'indice de passage dans une variable $avi
$timeActuel = time(); //Donne le timestamp actuel
$semaine = $timeActuel - (7 * 24 * 60 * 60); // Donne le timestamp d'il y a une semaine
$timestamp = $donnees['user_lastvisit']; //Colle la derniere visite dans une variable sous forme du timestamp
$semaines = $timeActuel - (2 * (7 * 24 * 60 * 60)); //Donne le timestamps d'il y a deux semaines
$pseudo = $donnees['phpbb_users'];
if ($timestamp > $semaines)
{
if ($avi != 1 AND $avi != 0)
{
echo $pseudo; //on affiche tous les pseudo qui correspondent.
}
}
}
?>
bidulesfr
Messages postés25Date d'inscriptiondimanche 11 septembre 2005StatutMembreDernière intervention20 décembre 2007 6 janv. 2006 à 04:29
Salut,
Hééé bin, moi qui trouve que mes requete commence à devenir compliqué pour moi, quand je vois la tienne .... je me dis que mon cerveau commence à manquer de mémoire rame
En faite je suis repartie de ton premier post ou tu parlais d'un manque d'info dans le WHERE, et en inspirant de ce que tu as fait dans ta requete $sQuery, je suis arrivé la dessus. Et visiblement ca marche.
$sql="SELECT *
FROM phpbb_users U, phpbb_user_group UG, select_team ST
WHERE (
U.user_id = ST.user_id
)
AND (
UG.user_id = ST.user_id
)
AND (
U.user_id = UG.user_id
)
AND UG.group_id =6
ORDER BY `user_lastvisit` DESC"
J'ai fais que un essai, mais bon, on va dire que c'est bon hein :P
J'accepte ton dernier post, meme si la réponce est en faite mélangé un peu dans chaque post et que je donne la solution final à la fin (je vais quand meme pas accepter mon propre post hein, ca ferait tache.
Merci beaucoup du coup de main. Tu ma enlevé une grosse épine du pied.
bidulesfr
Messages postés25Date d'inscriptiondimanche 11 septembre 2005StatutMembreDernière intervention20 décembre 2007 5 janv. 2006 à 10:37
J'ai fais une petite erreur dans ce que j'ai dis, ce script la ne me retourne aucun enregistrement quelque soit les conditions. (C'étais avant que je bidouille que ca m'en revoyé de trop. Quoi boulet ?)
Je retrouve plus la requette qui me retrouver tous les pseudo. Celle la m'en revoi en faite aucun. Malgres que normalement j'ai bien un champ qui correspond.
Sinon quand je fais mes requete sql sur phpmyadmin, ca me redonne le même résultat. Soit aucun enregistrement (MySQL n'a retourné aucun enregistrement). Soit plusieurs fois le meme champ (pour l'ancienne requete, je regarde pour la refaire également)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 6 janv. 2006 à 08:21
Si si, j'accepte ta réponse avec :-) C'est toi qui donne la réponse
finale, donc ceux qui auront le même genre de problème, et regarderont
ce post, pourront avoir ainsi la méthode que tu as utilisé :-)
On a le droit de valider ses propres post :-) Je le fais pour toi du coup.