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 :

Limiter les requêtes


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Décembre 2020
    Messages : 2
    Par défaut Limiter les requêtes
    Bonjour.

    Je débute sur le forum, je souhaite donc une excellente journée à tous.
    Je précise que je suis plutôt niveau débutant et que ja encore un peu de mal avec certaines choses.

    Voici ma question:

    J'essaye de développer un site avec des galeries d'images. Je voudrai automatiser la création des liens du menu dans mon header pour que chaque galerie "Racine" et ses propres sous galeries s'ajoutent automatiquement.

    Je fais donc une première requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mg3b_sql = 'SELECT * FROM mg3_albums WHERE `alb_id` IN ( '.mg3_listalbsok().' );';
    mg3_listalbsok() est une fonction pour n'afficher que les albums autorisés.

    Puis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ( $mg3b_row = Kws_mysql_fetch_object( $mg3b_result )) {
    $marge ++;
     
    if ($mg3b_row->alb_parent == '0'){
    Ici j'affiche mon premier <li>

    DANS cette boucle while, je fais une 2e requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $mg3b_sql2 = 'SELECT * 
    	FROM mg3_albums 
    	WHERE `alb_parent` = "'.$mg3b_row->alb_id.'" 
    	AND `alb_id` IN ( '.mg3_listalbsok().' )
    	ORDER BY `alb_intitule` ASC;';
    	$mg3b_result2 = reqmysql( $mg3b_sql2 );
    Pour aller chercher les sous albums...


    Je pense que le fait de faire une requête DANS une requête n'est pas génial, d'autant que si j'ai 10 galeries racine, ça fa augmenter considérablement le nombre de requetes.

    J'aimerai pouvoir faire tout ça avec une seule requête et quelque chose derrière qui fasse le tri.... Mais je ne suis pas assez compétent pour ça.

    Quelqu'un pourrait-il m'aider?

    Merci d'avance.

  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
    vous pouvez probablement récupérer toutes les données avec 1 seule requête. regardez cet article sur les jointures :
    https://sqlpro.developpez.com/cours/sqlaz/jointures/
    si je me rappelle bien, cet article présente de manière générale ce qui est prévu dans la norme SQL. mais ensuite chaque SGBDR l'implémente de différentes façons donc quand vous essayerez avec MySQL, il y aura peut-être des petites différences de syntaxe mais l'idée générale est là.

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Décembre 2020
    Messages : 2
    Par défaut
    Bonjour @mathieu, et merci pour la réponse.

    Je vais regarder ça attentivement.
    J'ai aussi trouvé un truc qui semble correspondre à ma recherche ici: https://www.coinduwebmaster.com/menu...ursive-php/89/
    A priori ça me permettrait de ne faire qu'une seule requête.

    Je vais plancher sur ça aujourd'hui.

Discussions similaires

  1. Limiter les requêtes http/Apache avec IpTables
    Par Invité dans le forum Réseau
    Réponses: 4
    Dernier message: 25/11/2018, 18h17
  2. limiter les requêtes /le CPU sur une vue db2
    Par batou22003 dans le forum DB2
    Réponses: 4
    Dernier message: 08/11/2011, 17h43
  3. Réponses: 2
    Dernier message: 20/09/2011, 09h58
  4. Limiter les résultats d'une zone de liste déroulante (requête)
    Par Tipstitou dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/02/2008, 11h01
  5. Limiter les résultats d'une requête à \today\' - n jours
    Par Eddy Duflos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/10/2005, 08h46

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