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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Affichage d'un enregistrement sur un tableau d'enregistrements


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 35
    Par défaut Affichage d'un enregistrement sur un tableau d'enregistrements
    Bonsoir
    Le principe est que je veux ajouter le dernier enregistrement de ma base de données à un affichage qui existe déjà sur une page php sous forme de tableau.En fait je veux que celà se presente comme les notifications de tweeter.J'ai utilisé pour celà Ajax pour recharger ma page sans l'actualiser.Le souci c'est que je suis obligé de recharger de la base de données tous les enregistrements alors que je veux juste recuperer le dernier inséré et l'ajouter à la pile qui était dejà affichée.Quelqu'un à une idée s'il vous plait?

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script src="jquery.min.js"></script>
    <script>
    var auto_refresh = setInterval(
    function()
    {
    $('#free').load('done.php');
    }, 20000);
     
     </script>
    <title>Page d'enregistrement message</title>
    </head>
    <body>
    that's what we're looking 4!
    <div id="free"> 
    <?php
    //echo "alert('Valeur a enregistrer dans la base : ".$_POST['titre']."');";
     
    $DB_serveur ='Localhost'; 
    $DB_utilisateur ='root'; 
    $DB_motdepasse =''; 
    $DB_base ='test'; 
     
    $connection = mysql_connect($DB_serveur, $DB_utilisateur, $DB_motdepasse)
                    or die (mysql_error().'sur la ligne'.__LINE__);
     
                mysql_select_db($DB_base, $connection) 
                        or die (mysql_error().'sur la ligne'.__LINE__);
     
     
               $sql_b= mysql_query("SELECT * FROM message  ORDER BY id DESC LIMIT 10");
     
    echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"left\">\n" );
     while ($a=mysql_fetch_array($sql_b))
    {
    echo( "<tr>\n" );
    echo( "<td><div align=\"left\">".$a["titre"]."</div></td>\n" );
    echo( "</tr>\n" );
     
    }  
    echo nl2br( "</table><br>\n" );
    // --- Mais on peut faire toute sorte de chose,
    // --- Comme mettre à jour sa base de donnée,
    // --- sélectionner dans la base et retourner des résultats pour mettre
    // --- à jour graphiquement une interface, et ce, 
    // --- sans le moindre rechargement de page que ce soit !
     
    ?>
    </div>
    </body>
    </html>

    mon fichier done.php

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Page d'enregistrement message</title>
    </head>
    <body>
    <?php
    $DB_serveur ='Localhost'; 
    $DB_utilisateur ='root'; 
    $DB_motdepasse =''; 
    $DB_base ='test'; 
     
    $connection = mysql_connect($DB_serveur, $DB_utilisateur, $DB_motdepasse)
                    or die (mysql_error().'sur la ligne'.__LINE__);
     
                mysql_select_db($DB_base, $connection) 
                        or die (mysql_error().'sur la ligne'.__LINE__);
    //echo "alert('Valeur a enregistrer dans la base : ".$_POST['titre']."');";
     
     
               $sql_b= mysql_query("SELECT * FROM message  ORDER BY id DESC LIMIT 10");
     
    echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"left\">\n" );
     while ($a=mysql_fetch_array($sql_b) )
    {
    echo( "<tr>\n");
    echo( "<td><div id=\"free\"align=\"left\">".$b["titre"]."</div></td>\n" );
    echo( "<td><div align=\"left\">".$a["titre"]."</div></td>\n" );
    echo( "</tr>\n" );
     
    }  
    echo nl2br( "</table><br>\n" );
    // --- Mais on peut faire toute sorte de chose,
    // --- Comme mettre à jour sa base de donnée,
    // --- sélectionner dans la base et retourner des résultats pour mettre
    // --- à jour graphiquement une interface, et ce, 
    // --- sans le moindre rechargement de page que ce soit !
     
    ?>
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    L'idée est simple, tu passes à ton appel ajax l'id du dernier message affiché et ensuite tu sélectionnes comme tu le fais mais en rajoutant un filtre comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM message ORDER BY id DESC WHERE id > $id LIMIT 10"

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 35
    Par défaut merci
    super mais dis moi comment je passe l'id au script ajax, dans ajax je n'indique que la <div> à actualiser,explique moi comment passer l'id stp.

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    J'ai repris ton script initial :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
     
    $DB_serveur ='Localhost';
    $DB_utilisateur ='root';
    $DB_motdepasse ='';
    $DB_base ='test';
     
    $connection = mysql_connect($DB_serveur, $DB_utilisateur, $DB_motdepasse)
                    or die (mysql_error().'sur la ligne'.__LINE__);
     
    mysql_select_db($DB_base) or die (mysql_error().'sur la ligne'.__LINE__);
    $data = mysql_query('SELECT * FROM message  ORDER BY id DESC LIMIT 10');
    if ( ! $data) {
       die (mysql_error().'sur la ligne'.__LINE__);
    }
     
    $tableRows = array();
    $idMax = null;
    while($row = mysql_fetch_assoc($data)) {
       if (null === $idMax) {
          $idMax = $row['id'];
       }
       $tableRows[] = '<tr><td><div align="left">'.$row['titre'].'</div></td></tr>';
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
       <script src="jquery.min.js"></script>
       <script type="application/javascript">
          var auto_refresh =
             setInterval(function() {$('#free').load('done.php?idMax=<?php echo $idMax; ?>');}, 20000);
       </script>
       <title>Page d'enregistrement message</title>
    </head>
    <body>
       <div id="free">
          <table border="1" cellpadding="1" cellspacing="1" align="left">
             <?php echo implode("\n", $tableRows); ?>
          </table>
          <br />
       </div>
    </body>
    </html>
    J'y ai inséré le passage à l'appel ajax du dernier id extrait $idMax.
    Il ne te reste plus qu'à faire ce que je t'ai dit plus haut et tu vas récupérer ton id dans $_POST['idMax']Ton script done.php ne devrait renvoyer aucun en-tête de page comme tu le fais juste le bon header avec les données nouvellement récupérées.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/11/2013, 13h43
  2. [AC-2007] Dictionnaire et affichage de plusieurs enregistrements sur un formulaire
    Par Cinesra dans le forum VBA Access
    Réponses: 8
    Dernier message: 08/11/2010, 13h44
  3. affichage de deux requettes sur le meme tableau
    Par nemo27 dans le forum Développement
    Réponses: 6
    Dernier message: 08/04/2009, 12h56
  4. Réponses: 1
    Dernier message: 16/08/2007, 17h58

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