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 :

Temps de réponse trop long !


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2018
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 75
    Par défaut Temps de réponse trop long !
    Bonjour

    Pour afficher des données naturalistes stockées sous MySQL (5.1), j'ai programmé quelques pages en PHP (5.6).

    J'ai une table "données" avec les infos principales (date, observateur, insee, espèce...) et une table "communes" (insee, commune, département...) dont la clé primaire 'insee' fait le lien avec la table "données" ; env. 3000 lignes dans "communes", 400 000 lignes dans "données"
    Je voudrais pouvoir afficher une liste succincte de toutes les données sur la même page, sous forme d'un tableau avec date / observateur / commune / espèce
    J'ai donc une requête

    SELECT date_obs, observateur, communes.commune, espece FROM donnees, communes WHERE communes.insee=donnees.insee ORDER BY date_obs, observateur, commune
    puis je fais une boucle sur les résultats pour afficher mon tableau, ça commence à afficher, ça dure un temps infini et ça plante le navigateur !

    Est-ce que ça pourrait être un problème de requête MySQL trop lourde ou plutôt de quantité de données à afficher ?

    Merci d'avance pour vos réponses

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    essayez déjà de faire une requête qui affichera seulement le nombre de ligne qui peut s'afficher sur une seule page.

    à partir de cela, vous pouvez ajouter un système de pagination pour voir la suite des données, vous pouvez vous inspirer des morceaux de codes suivants :
    https://antoine-herault.developpez.c...atique-en-php/
    https://www.developpez.net/forums/bl...78/pagination/

    une fois que ça fonctionnera bien, vous pourrez ajouter du JavaScript qui va précharger les pages suivantes et précédentes pour simplifier la navigation pour les utilisateurs.

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2018
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 75
    Par défaut
    Merci pour cette piste, c'est vrai que, jusqu'à présent, je n'ai jamais eu à afficher un tel volume de données !

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Bonjour,

    Ca n'a pas de sens de vouloir afficher 400K lignes. Ca sera inexploitable et une base de données n'est pas fait pour ca (autant utiliser un simple fichier).

    Il faut paginer les résultat et/ou conditionner l'affichage des résultat à un ensemble de critère pour limiter leur nombre
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2018
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 75
    Par défaut
    Citation Envoyé par grunk Voir le message
    Bonjour,

    Ca n'a pas de sens de vouloir afficher 400K lignes. Ca sera inexploitable et une base de données n'est pas fait pour ca (autant utiliser un simple fichier).

    Il faut paginer les résultat et/ou conditionner l'affichage des résultat à un ensemble de critère pour limiter leur nombre
    Merci
    J'ai, par ailleurs, fait un formulaire de recherche multi-critères mais l'affichage de la base entière me paraissait permettre rechercher dans la page ou de parcourir les données par date, par observateur, par espèce en changeant l'ordre mais vous avez raison, c'est bien trop lourd...
    Je vais paginer !

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    Citation Envoyé par dom73 Voir le message
    parcourir les données par date, par observateur, par espèce en changeant l'ordre
    vous pouvez faire des tris et des filtres même avec une pagination.

Discussions similaires

  1. Temps de réponse trop long
    Par LALACOM dans le forum Oracle
    Réponses: 11
    Dernier message: 03/10/2011, 17h37
  2. Réponses: 9
    Dernier message: 02/10/2010, 12h43
  3. temps de réponse trop long
    Par hammag dans le forum SQL
    Réponses: 7
    Dernier message: 11/05/2010, 13h00
  4. temp de réponse trop long
    Par maxidoove dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/10/2005, 18h24
  5. Arrêter un prog si temps de connexion trop long
    Par jakouz dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2002, 18h28

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