Récupérer les 5 derniers enregistrement d'une bd MySQL et les consigner dans un

Signaler
Messages postés
11
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
4 janvier 2017
-
Messages postés
11
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
4 janvier 2017
-
Salut a tous,je suis entrain de concevoir un portail web capable de copier le donne d'un autre portail au mien ce que j'ai fais. Cependant j'aimerais pour améliorer le temps de réponse implémenter un système de cache c'est a dire: sélectionner les 5 derniers enregistrement d'une bd et ensuite consigner ces enregistrement sur un ficher texte avant de les afficher.
Merci.

8 réponses

Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
14
Donnes des détails car la c'est très vague.
bd : sql server, mysql, fichier texte ?

Quel est le problème ?
Qu'est-ce que tu n'arrives pas à faire ?


---
mon blog
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
Messages postés
11
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
4 janvier 2017

Bonsoir le problème, est simple j'ai une bd sous MySQL chargée de données mon but c'est d'extraire les 5 derniers enregistrements et consigner sur un ficher texte chacune de ces données.

<?php

require ('connect.php');
?>
<?php
$fichier = 'C:\Program Files\EasyPHP5.3.0\www\fineis\cache.txt'; // On crée une variable qui contient l'emplacement du fichier.

if(!file_exists($fichier)) // Si le fichier n'existe pas...
{
touch($fichier); // ...alors on le crée :]
}

$duree_cache = time() - filemtime($fichier);
/*
je fait ici la différence entre le timestamp actuel, et le timestamp où le fichier a été modifié pour la dernière fois avec filemtime().
On entend par modification de fichier le fait de l'ouvrir, de le créer ou encore d'écrire dessus.
Donc la moindre manipulation sur un fichier met à jour son filemtime().
*/

if($duree_cache>=300) // Si le fichier a été modifié il y a plus de 5 minutes.
{
$retour_article =array();
$retour_article ='SELECT libelle FROM equivalence ORDER BY id_equivalence LIMIT 0,05';
// On récupère le titre de nos 10 derniers articles.
$resultat = ''; // On crée une variable vide, qui va nous servir ensuite...

while($resultat_article = mysql_fetch_assoc($retour_article))
{
$resultat .= '<li> ' . $resultat_article['datecour'] . '</li>';
/*
Comme nous souhaitons récupérer une liste, composé de différentes entrées,
on ne peut pas récupérer tout d'un coup, on doit donc faire une boucle et on
rajoute à chaque fois le nouveau titre de notre article entre les balises
< li > pour mettre sous forme de liste.
*/
}

$ouvrir = fopen($fichier, 'wb'); // On ouvre notre fichier en wb.
fwrite($ouvrir, $resultat); // On écrit $resultat sur le fichier.
fclose($ouvrir); // On ferme notre fichier.
}

$resultat = file_get_contents('C:\Program Files\EasyPHP5.3.0\www\fineis\cache.txt');
if(!empty($resultat)) // Si le fichier n'est pas vide.
{
echo $resultat; // j'affiche son contenu.
}
else // Sinon c'est qu'il est vide...
{
echo ' Aucun article.

';
}

?>
Messages postés
11
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
4 janvier 2017

le résultat de ce code: Aucun article.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

Cette partie devrait être dans la boucle while :
$ouvrir = fopen($fichier, 'wb'); // On ouvre notre fichier en wb.
    fwrite($ouvrir, $resultat); // On écrit $resultat sur le fichier.
    fclose($ouvrir); // On ferme notre fichier.


Cordialement,

PS: pense à utiliser la balise code pour présenter ton code et indente le

Kohntark -
Messages postés
11
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
4 janvier 2017

<?php
require ('connect.php');
?>
<?php
$fichier = 'C:\Program Files\EasyPHP5.3.0\www\fineis\cache.txt'; // On crée une variable qui contient l'emplacement du fichier.
 
if(!file_exists($fichier)) // Si le fichier n'existe pas...
{
    touch($fichier); // ...alors on le crée :]
}
 
$duree_cache = time() - filemtime($fichier);

 
if($duree_cache>=300) 
{
        $retour_conv =array();
    $retour_conv ='SELECT libelle FROM equivalence ORDER BY id_equivalence LIMIT 0,05';
    $resultat = ''; 
 
    while($resultat_conversion = mysql_fetch_assoc($retour_conv))
    {
        $resultat .= '<li> ' . $resultat_conv['datecour'] . '</li>';
            $ouvrir = fopen($fichier, 'wb'); // On ouvre notre fichier en wb.
        fwrite($ouvrir, $resultat); // On écrit $resultat sur le fichier.
        fclose($ouvrir); // On ferme notre fichier.
    
    }
    
}
$resultat = file_get_contents('C:\Program Files\EasyPHP5.3.0\www\fineis\cache.txt');
if(!empty($resultat)) // Si le fichier n'est pas vide.
{
    echo $resultat; // On affiche son contenu.
}
else // Sinon c'est qu'il est vide...
{
    echo ' Aucun article. 

';
}

?>


je l'ai fait mais voici l'erreur:Warning: mysql_fetch_assoc() expects parameter 1 to be resource, array given in C:\Program Files\EasyPHP5.3.0\www\fineis\d.php on line 25

ma base de données est constitue d'une seule table a 3champs id,datecour et libelle;

merci.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
L'erreur est bien normale et te dit tout :
mysql_fetch_assoc() attend une ressource en paramètre alors que tu lui passes une string.

Tu n'aurais pas oublié un mysql_query() quelque part des fois ?


Encore un ti NB : pense à indiquer clairement quelle est la ligne reportée par l'erreur (ici quelle est la ligne 25)

Cordialement,

Kohntark -
Messages postés
11
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
4 janvier 2017

la ligne la voila:
while($resultat_conversion = mysql_fetch_assoc($retour_conv))

cdlt.
Messages postés
11
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
4 janvier 2017

c'est bon il fallait justement le fameux mysql_query() merci