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

dansmy Messages postés 11 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 4 janvier 2017 - 26 mai 2010 à 16:17
dansmy Messages postés 11 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 4 janvier 2017 - 27 mai 2010 à 17:27
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

cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
26 mai 2010 à 19:17
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.
0
dansmy Messages postés 11 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 4 janvier 2017
26 mai 2010 à 22:12
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.

';
}

?>
0
dansmy Messages postés 11 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 4 janvier 2017
26 mai 2010 à 22:20
le résultat de ce code: Aucun article.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
27 mai 2010 à 08:30
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 -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dansmy Messages postés 11 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 4 janvier 2017
27 mai 2010 à 11:52
<?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.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
27 mai 2010 à 12:06
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 -
0
dansmy Messages postés 11 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 4 janvier 2017
27 mai 2010 à 15:25
la ligne la voila:
while($resultat_conversion = mysql_fetch_assoc($retour_conv))

cdlt.
0
dansmy Messages postés 11 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 4 janvier 2017
27 mai 2010 à 17:27
c'est bon il fallait justement le fameux mysql_query() merci
0
Rejoignez-nous