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 :

[SQL] Organisation des requetes


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de flysurfer
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 60
    Par défaut [SQL] Organisation des requetes
    Bonjour

    je vais essayer d'etre le plus clair et precispossible.

    J'ai 4 tables

    ecole : numero, nom, numero_quartier
    quartier : numero, nom_quartier
    intervention : numero, numero_ecole, date,demande
    intervention_2 : numero, numero_intervention, date, realisation

    les liens entre les tables : j'indique les cles

    ecole -> quartier = numero_quartier -> numero
    intervention -> ecole = numero_ecole -> numero
    intervention_2 -> intervention = numero_intervention ->numero

    Je dois récupérer un tableau de 4 colonnes
    Quartier 1
    |->Ecole 1
    |->intervention 1
    |->réalisation 1
    |->réalisation 2
    |->réalisation 3
    |->intervention 2
    |->réalisation 4
    |->réalisation 5
    |->réalisation 6

    Les données de celui-ci doivent etre regroupés par quartier, triés par école.

    QUESTION :

    Comment et dans quel ordre dois-je organiser mes requetes SQL ???

    J'ai commencé par

    Créer un tableau des quartiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query = "SELECT * FROM ecole_quartier ORDER BY quartier";
    $result = mysql_query($query) ;
    $quartier= array();
    while ($row = mysql_fetch_row($result) ) {
      $quartier[] = $row[0];
      }
    Puis lancé la requete suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for ($i = 0; $i < count($quartier);$i++) {
      $query = "SELECT numero, nom_ecole FROM ecole_nom_ecole WHERE 1 AND quartier = '".$quartier[$i]."' AND numero IN (SELECT nom_ecole FROM ecole_intervention WHERE date > '".$date_debut."' ORDER BY date) ORDER BY quartier, nom_ecole";
      $result = mysql_query($query);
      echo $quartier[$i]."<br>";
      while ($row=mysql_fetch_row($result)) {
        $nom_ecole=$row[1];
        echo $nom_ecole."<br>";
        }
      echo "<hr>";
      }
    Dois-je continuer dans cette voix ???

    Merci d'avance de vos réponses

    Fly

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    Bonjour


    A vrai dire je verrai plus une grosse requete SQL dans lequel tu as tout dans le bonne ordre (regarde du cote des LEFT JOIN) et ensuite tu affiche le nom de l'ecole / du quartier etc.... seulement si il est different du precedent....

    Perso moi je trouverai cela plus propre (en regle general il faut mieux faire le maximun possible en SQL et le minimum en php, tu limite les erreures).


  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Suis du même avis que vincedom... ça peut t'éviter pas mal de galère...

    Si tu n'es pas trop habitué aux INNER JOIN ou LEFT JOIN, essai d'utiliser Navicat -> http://www.navicat.com/
    (dispo sous osx, linux et windows, payant, mais une version d'essai existe) Ce soft va te permettre de générer ta requête en deux temps trois mouvement...

    Edit :

    Un petit exemple du Query builder trouvé sur leurs site... ça correspond à peux près à ce que tu veux faire...

    http://support.navicat.com/animations/query_builder.gif

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM ecole, quartier, intervention, intervention_2 WHERE ecole.numero_quartier = quartier.numero AND intervention.num_ecole = ecole.numero AND intervention_2.numero_intervention = intervention.numero ORDER BY quartier, ecole, intervention
    A voir, c'est fait sans vérification aucune mais ça peut peut-être te servir de base.

Discussions similaires

  1. [VB6]exécution des requétes sql
    Par nabil dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/06/2006, 07h24
  2. [VBA-E] Requete SQL incluant des donnees provenant de cells
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/03/2006, 18h16
  3. [Conception] - Organisation des pages pour une requete.
    Par ShinJava dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 24/10/2005, 15h33
  4. sorties de requetes sql: mettre des separateurs de champs
    Par tomsoyer dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/08/2005, 17h05
  5. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49

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