Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2011, 17h01   #1
Invité régulier
 
christian lewhe
Inscription : mai 2010
Messages : 34
Détails du profil
Informations personnelles :
Nom : christian lewhe

Informations forums :
Inscription : mai 2010
Messages : 34
Points : 9
Points : 9
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 :
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 :
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.
lewhechris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h24   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
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 :
$sql = "SELECT * FROM message ORDER BY id DESC WHERE id > $id LIMIT 10"
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h31   #3
Invité régulier
 
christian lewhe
Inscription : mai 2010
Messages : 34
Détails du profil
Informations personnelles :
Nom : christian lewhe

Informations forums :
Inscription : mai 2010
Messages : 34
Points : 9
Points : 9
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.
lewhechris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h51   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
J'ai repris ton script initial :
Code :
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.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h56.


 
 
 
 
Partenaires

Hébergement Web