Ne réaliser une boucle while qu'une fois
jejew
-
jejew -
jejew -
Bonjour à tous,
J'utilise les sessions pour savoir quels articles un visiteur n'a pas encore lu. Je stock donc les IDs des articles non vus dans une session (en comparant avec la date de dernière visite contenue dans un cookie). Chaque fois qu'un visiteurs lit un post je unset l'id de ce post dans ma session.
J'ai juste un problème. J'utilise une boucle pour placer chaque ID dans une session mais je n'aimerais que cette boucle ne soit réalisée qu'une fois (en effet si elle se réalise à chaque rechargement de page, on réassigne tous les ids des posts non vus en Session et donc ça reviens à chaque fois comme si le lecteur n'avait lu aucun des nouveaux posts).
Voilà mon code :
Première visite, si la variable de session 'checkin' est différente de un, on définit tous les ids en session. Une fois que c'est fait je définit la variable checkin étant 1. La boucle ne devrait ensuite plus être réalisée. Le problème c'est que ça ne marche pas.
Si je prend le même code pour un if simple ça fonctionne :
Ca me rend dingue !!! Quelqu'un a une idée ? :)
Merci d'avance
J'utilise les sessions pour savoir quels articles un visiteur n'a pas encore lu. Je stock donc les IDs des articles non vus dans une session (en comparant avec la date de dernière visite contenue dans un cookie). Chaque fois qu'un visiteurs lit un post je unset l'id de ce post dans ma session.
J'ai juste un problème. J'utilise une boucle pour placer chaque ID dans une session mais je n'aimerais que cette boucle ne soit réalisée qu'une fois (en effet si elle se réalise à chaque rechargement de page, on réassigne tous les ids des posts non vus en Session et donc ça reviens à chaque fois comme si le lecteur n'avait lu aucun des nouveaux posts).
Voilà mon code :
if($_SESSION['checkin'] != '1')
{
$query = 'SELECT * FROM songs WHERE pub_date < \''.$current_date.'\' AND pub_date > \''.$last_visit.'\' ORDER BY songs.pub_date DESC';
$result = mysql_query($query);
while ($data = mysql_fetch_assoc($result))
{
$id = $data['id'];
$var= 'song_'.$id;
$_SESSION[$id] = $id;
}
$_SESSION['checkin'] = '1';
}
Première visite, si la variable de session 'checkin' est différente de un, on définit tous les ids en session. Une fois que c'est fait je définit la variable checkin étant 1. La boucle ne devrait ensuite plus être réalisée. Le problème c'est que ça ne marche pas.
Si je prend le même code pour un if simple ça fonctionne :
echo 'Checkin est égal à '.$_SESSION['checkin'].'<br>';
if($_SESSION['checkin'] != '1')
{
echo 'Checkin est différent de 1 !<br>';
echo '<a href="bonjour.php">Recommencer ! </a><br>';
$_SESSION['checkin'] = '1';
}
echo 'Checkin est égal à '.$_SESSION['checkin'];
Ca me rend dingue !!! Quelqu'un a une idée ? :)
Merci d'avance
A voir également:
- Ne réaliser une boucle while qu'une fois
- Réaliser un organigramme - Guide
- Sonne une fois et messagerie - Forum Mobile
- Je suis une chose que les garçons utilisent 2 fois par jour et les filles une fois dans leur vie - Forum Loisirs / Divertissements
- Imprimer plusieurs fois la même image sur une page ✓ - Forum Logiciels
- Site paiement plusieur fois carte nickel forum - Forum Consommation & Internet
3 réponses
jejew
Le for c'est pas uniquement pour l'incrémentation ?
mayuri
Messages postés
601
Statut
Membre
65
sisi mais je pensais a autre chose! mais ça fonctionneras pas :S! je bloque dsl
jejew
Pas de soucis ! ;)