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 :

Améliorer l'affichage d'une requête [ODBC]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Par défaut Améliorer l'affichage d'une requête
    Bonjour à tous !

    J'ai un petit soucis au niveau d'une requête SQL dont voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php	$prepare_affiche1=odbc_prepare($connexion, "SELECT DISTINCT NomMethode, NomTache, NomProduit, PhraseRisque //
    	FROM Produit, Utiliser, Tache, Methode, Fonction 
    	WHERE Produit.NumProduit=Utiliser.NumProduit 
    	AND Utiliser.NumTache=Tache.NumTache
    	AND Tache.NumMethode=Methode.NumMethode 
    	AND Methode.NumFonction=Fonction.NumFonction 
    	AND Methode.NumFonction ='".$fonction."'");
    	$exe_affiche1=odbc_execute($prepare_affiche1);	
    	$result_affiche1=odbc_result_all($prepare_affiche1, format);
    ?>
    Et le résultat est très correct, sauf que je voudrai modifier l'affichage du résultat fournit par odbc_result_all car il m'affiche un résultat de la forme :

    Methode1 tache1 Produit1 Phraserisque1
    Methode1 tache2 Produit 2 PhraseRisque2
    Methode2 tache3 Produit 3 PhraseRisque3.

    En gros je voudrais réunir les tâches de la méthode1 pour faire une seule ligne avec tache1 et tache 2 en deux sous ligne.

    Enfin si je ne suis pas claire dites le moi.

    Merci d'avance pour votre aide !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Déjà fait tes jointures avec JOIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $prepare_affiche1=odbc_prepare($connexion, "SELECT DISTINCT NomMethode, NomTache, NomProduit, PhraseRisque //
    			FROM Produit
                            JOIN Utiliser ON Produit.NumProduit=Utiliser.NumProduit 
                            JOIN Tache ON Utiliser.NumTache=Tache.NumTache
                            JOIN Methode ON Tache.NumMethode=Methode.NumMethode 
                            JOIN Fonction ON Methode.NumFonction=Fonction.NumFonction 
    			WHERE Methode.NumFonction ='".$fonction."'
                            ORDER BY NomMethode);
    $exe_affiche1=odbc_execute($prepare_affiche1);

    Une méthode très simple pour regrouper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $cur_methode = '';
    foreach ($result_affiche1 as $row) {
       if ($row['NomMethode'] != cur_methode = '') {
              echo '<p>' . $row['NomMethode'] . '</p>';
              $cur_methode = $row['NomMethode'];
       }
       echo $row['NomTache'] . '-' . $row['NomProduit'] . '<br/>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Par défaut
    Merci Sabotage !

    J'ai corriger ma requête avec les JOIN comme tu me l'as fait remarquer, faut que je m'habitue a cette syntaxe ^^.

    Concernant le il s'agit bien de la méthode courante?

    Je dois bien rajouter ton code en dessous de mon : "result_affiche1" parce qu'il me met ceci en erreur : "Warning: Invalid argument supplied for foreach()"

  4. #4
    Membre averti
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Par défaut
    Apparemment mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result_affiche1=odbc_result_all($prepare_affiche1);
    N'est pas un tableau PHP, c'est un tableau HTML...

    J'aimerai aussi votre avis sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     resource odbc_exec ( resource $connection_id , string $query_string [, int $flags ] )
    Est-il mieux que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     resource odbc_prepare ( resource $connection_id , string $query_string ) //et
    bool odbc_execute ( resource $result_id [, array $parameters_array ] )

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ah oui pardon j'ai cru que c'etait comme le fetch_all en PDO mais non.
    Pour le "prepare" il ne te sert pas en l'état puisque tu n'utilises pas de paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $result = odbc_exec($prepare_affiche1);	
    while ($row = odbc_fetch_array($result)) {
      if ($row['NomMethode'] != cur_methode = '') {
              echo '<p>' . $row['NomMethode'] . '</p>';
              $cur_methode = $row['NomMethode'];
       }
       echo $row['NomTache'] . '-' . $row['NomProduit'] . '<br/>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Homme Profil pro
    iut amiens
    Inscrit en
    Mai 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : iut amiens
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 43
    Par défaut
    Merci encore ! Oui là ça marche, mais toujours le même soucis de répétition des Méthodes, ça a juste changé l'affichage de mon problème.

    en fait mon affichage pour l'instant est comme ceci:

    Nom : tableau_odbc_result_all.jpg
Affichages : 268
Taille : 211,5 Ko


    Et ce que tu m'a préconisé fait ceci :
    Nom : résultat_algo.jpg
Affichages : 230
Taille : 116,8 Ko


    Dans cet exemple je voudrai regrouper toute les méthodes qui ont un doublon tout en gardant les taches, les produits, et les PhrasesRisque lié à la méthode dans plusieurs "sous-ligne"

    Comme l'exemple ci dessous :

    Nom : résultatattendu.jpg
Affichages : 213
Taille : 58,3 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage d'une requête
    Par poula dans le forum Forms
    Réponses: 2
    Dernier message: 18/12/2006, 14h47
  2. Affichage d'une requête
    Par Sorcier157 dans le forum Zend_Db
    Réponses: 6
    Dernier message: 27/10/2006, 10h30
  3. [MySQL] affichage d'une requête
    Par gailup dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/06/2006, 10h20
  4. [MySQL] Affichage d'une requête
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 31/01/2006, 10h54
  5. Modifier l'affichage d'une requête
    Par seal dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/09/2005, 14h26

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