IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Condition dans requète [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut Condition dans requète
    Bonsoir,
    Suite a une requette, j'affiche un tableau qui me liste les membres connectés depuis au moins 5 minutes et avec un raffraichiment toutes les 30 secondes.
    Tout va bien, le tableau s'incrémente ou se décrémente en fonction des membres connectés.
    Ce que je voudrais, c'est quand un membre de connècte, c'est de lancer un son
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<BGSOUND SRC="stats/Sons/Tir.wav">';
    Mais je ne sais pas comment ni ou intégrer ce code dans ma source !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    while ($row = mysql_fetch_array($result)) //Tant qu'on a des noms
    {
     if ( $b == 3) { $b = "1"; }
     if ($b == 1)
        { echo "<tr bgcolor=$color1><td><font color='#000080'><center> $i </center></td><td><font color='#000080'>"; }
     if ($b == 2)
        { echo "<tr bgcolor=$color2><td><font color='#000080'><center> $i </center></td><td><font color='#000080'>"; }
     
     echo "   *$row[1] </td><td><font color='#000080'>
              *$row[0] </td><td><font color='#000080'>
              *$row[2] </td></tr>";
     $i++;
     $b++;
     echo "</form></center></td></tr>";
    }
    J'ai essayé, mes sans succès
    Si vous pouvez m'orienter

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut
    si j'ai bien compris, tu veux jouer un son quand un nouveau nom apparait dans ta table. Je pense que pour cela, il te faut que tu conserves l'historique des derniers nom des personnes connectés (un tableau dans une variable de session peut être) pour pouvoir comparer avec les nouveaux nom. Si le nom ne se trouve pas dans le tableau précédent alors tu inséres ton code pour jouer le son.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Bonsoir,
    Oui, tu a bien cerné mon soucis
    Le tableau m'affiche le nombre de connectés, mais si je mêt ce nombre dans une variable, lors du raffraichissement, je perds le contenu de cette variable !
    La bonne question comme tu a dis, serai de mémoriser cette variable et de la comparer avec le nouveau nombre de connectés.
    L'idée est bonne, mais comment l'exploiter ?

  4. #4
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    if (!isset($_SESSION['user']) && empty($_SESSION['user']) = array();
    $temp = array();
     
     
    while ($row = mysql_fetch_array($result)){
     
    	if ( $b == 3) { $b = "1"; }
    	if ($b == 1){ echo "<tr bgcolor=$color1><td><font color='#000080'><center> $i </center></td><td><font color='#000080'>"; }
    	if ($b == 2){ echo "<tr bgcolor=$color2><td><font color='#000080'><center> $i </center></td><td><font color='#000080'>"; }
     
    	echo "   *$row[1] </td><td><font color='#000080'>
    	         *$row[0] </td><td><font color='#000080'>
    	         *$row[2]";
     
    	if ( !in_array($row[1],$_SESSION['user']) ) echo '<BGSOUND SRC="stats/Sons/Tir.wav">';
    	echo "</td></tr>";
     
    	$temp[] = $row[1];
    	$i++;
    	$b++;
    	echo "</form></center></td></tr>";
    }
     
    $_SESSION['user'] = $temp;
    J'ai pas testé évidemment...

    je trouve bizarre la balise fermante de formulaire à la fin de while...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Non, cela ne va pas et je n'ai plus d'affichage !
    Voici le code modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    if (!isset($_SESSION['user']) && empty($_SESSION['user']) == array())
    {
     $temp = array(); 
    while ($row = mysql_fetch_array($result)) //Tant qu'on a des noms
    {
     if ( $b == 3) { $b = "1"; }
     if ($b == 1)
        { echo "<tr bgcolor=$color1><td><font color='#000080'><center> $i </center></td><td><font color='#000080'>"; }
     if ($b == 2)
        { echo "<tr bgcolor=$color2><td><font color='#000080'><center> $i </center></td><td><font color='#000080'>"; }
     
     echo "   *$row[1] </td><td><font color='#000080'>
              *$row[0] </td><td><font color='#000080'>
              *$row[2] </td></tr>";
     $i++;
     $b++;
     echo "</form></center></td></tr>";
    }
    }
    $_SESSION['user'] = $temp;
    D'ou viens "user" ou le remplacer par quoi ?

  6. #6
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    la première ligne ne sert qu'à initialiser la variable de session, ce n'est pas un test qui conditionne l'entrée dans le while. C'est pour ça que ça n'affiche rien.
    J'ai fait une erreur dans le code que j'avais posté...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset($_SESSION['user']) && empty($_SESSION['user'])) $_SESSION['user'] = array();
    par contre, tu as enlevé le code qui permet de tester si l'utilisateur courant était déjà là précédemment ou pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( !in_array($row[1],$_SESSION['user']) ) echo '<BGSOUND SRC="stats/Sons/Tir.wav">';

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    J'ai placé ISSET avant le While
    et le in_array juste après le While

    mais j'ai cette erreur :
    Warning: in_array(): Wrong datatype for second argument in c:\program files\easyphp1-7\www\test-1.php on line 70

    Ce qui correspond a la ligne du : !in_array

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Coincé sur condition dans requête
    Par WibiMaster dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/02/2011, 08h31
  2. Condition dans requête avec "substring"
    Par jojo1000 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/01/2010, 12h24
  3. [AC-2003] Checkbox pour activer condition dans requête + calendrier
    Par basoil dans le forum IHM
    Réponses: 3
    Dernier message: 30/04/2009, 17h09
  4. condition dans requête access
    Par joelp68 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/11/2008, 16h19
  5. condition dans requête select
    Par lionel256 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/05/2008, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo