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 :

Affichage incomplet d'une requête avec php [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut Affichage incomplet d'une requête avec php
    Bonjour,
    je viens de m'apercevoir que ma requete m'affiche bien mes 6000 enregistrements sous Toad for Oracle mais lorsque je l'affiche avec php il m'affiche seulement 780 enregistrements.
    J'utilise un oci_fetchinto sous pHp pour affciher.

    Quelqu'un aurait-il une idée ?

    Merci d'avance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Exactement la même requête avec les mêmes paramètres ? pas de limitation ?

    Je ne connais pas oci_fetchinto, mais c'est la même chose que oci_fetch_array non ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    Bonjour,
    oui exactement la même requête ...
    Oui le ocifetchinto est comme oci_fetch_array, je viens de tester avec le oci_fetch_array et même résultat au dessus d'environ 700 enregistrements affichés il ne m'affiche plus les autres...

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    C'est pas logique On peut voir le code ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $Project2=$_POST['Project'];
    $Q_JobList = "Select job,TO_CHAR(moment,'DD/MM/YYYY') AS DATEJOB,TO_CHAR (MOMENT-DURATION/60/60/24/1000,'HH24:mi:ss') AS BEGIN,
    	(SYSDATE-MOMENT)*24*60*60 AS RUNNINGDURATION,
    	TO_CHAR(moment,'HH24:mi:ss') AS END,
    	DURATION,message,message_type AS STATE,PID
    	FROM DFM_STAT  
    	WHERE PROJECT='".$Project2."'
    	order by message_type asc, 2 DESC, 5 DESC";		
    $statement = oci_parse ($dblink, $Q_JobList);
    oci_execute ($statement);	
    //********************Structure of Query display*****************************
    //************************************************************************************
    while($L_JobList = oci_fetch_array($statement, OCI_ASSOC)){
    	echo "<tr colspan='7' class='titreblanc'>";
    	echo "<td>".$L_JobList[JOB]."</td>";
    	echo "<td>".$L_JobList[DATEJOB]."</td>";
    	echo "<td>".$L_JobList[END]."</td>";
    	echo "<td>".$L_JobList[BEGIN]."</td>";
    }

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    En dehors du fait qu'il manque la balise fermante de ton <tr>, je ne vois pas de problème particulier, rien qui puisse expliquer qu'il te manque des lignes.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    Oui pardon, il est bien dans mon code, je l'ai simplifié car je traite pas mal l'affichage avec des if etc... il est très long sinon.

    Par contre je viens de remarquer quelque chose, à l'intérieur du while je refais un while afin d'afficher juste une colonne venant d'une autre requête,

    Est ce que cela peut consommer de la ressource et affecter le nombre de résultat ?

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui, donc 6000 occurrences d'un "code très long", peut-être atteins-tu la max-execution-time ?
    Mais bon, pourquoi vouloir afficher 6000 lignes ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    C'est le besoin de mon projet, il faut que lorsque je clique sur un projet, j'ouvre un tableau ou il y a la liste détaillée de job par projet et il peut parfois en contenir plus de 7000 ( cas extrême ), mais j'aimerai que ça tourne...Sinon il y en a en moyenne 300/400 donc mon affichage fonctionne.

    Je vais essayer sans mon deuxième while alors voir si il prend trop de ressources

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Pour en être sûr, une fois que la page incomplète est affichée, regarde le code source (CTRL + U sur Firefox) pour voir si l'ensemble du HTML est présent.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    +1 sur Bovino. La dernière fois que je me suis trouvée dans ce genre de tableau énorme, c'était une IHM qui devait afficher la totalité des données dans un seul tableau parce que "il ne devrait pas y avoir plus d'une centaine de lignes" (dixit le client).
    Deux ans plus tard, la page mettait 5 minutes à s'afficher (quand elle s'affichait) parce que le tableau tentait d'afficher 8000 lignes

    Dans ce genre de situation, prévoir une pagination ou un nombre maximum d'éléments affichable peut être une bonne idée.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    Sans mon deuxième while le temps d’exécution est instantanée et les 7000 enregistrements s'affiche bien !
    Comment dois-je procéder pour faire ma deuxième requête ?

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    ça dépend : qu'est-ce qu'il y a dans ton 2e while ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Par défaut
    Citation Envoyé par Clement M Voir le message
    Sans mon deuxième while le temps d’exécution est instantanée et les 7000 enregistrements s'affiche bien !
    Comment dois-je procéder pour faire ma deuxième requête ?
    Salut,

    Il faut essayer de faire une jointure sur la requête initiale pour qu'elle dispose d'emblée de la valeur qui te manque plutôt que de placer une requête additionnel (qui sera executé X fois) dans ton while.

    Montre les deux requêtes si tu veux de l'aide.

  15. #15
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    Je vous remercie ! en retravaillant ma requête avec jointure j'ai pu optimiser et donc faire un seul while ! Merci

  16. #16
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    Je bloque la dessus ma requete marche mais je voudrai supprimé les doublons car en effet les colonnes MESSAGE,CODE,ORIGIN ne ramène pas qu'un enregistrements, c'est pour cela que je bouclais avant et que je le faisait en deux requetes...
    Voici la requete :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Select s.job,TO_CHAR(s.moment,'DD/MM/YYYY') AS DATEJOB,TO_CHAR (s.MOMENT-DURATION/60/60/24/1000,'HH24:mi:ss') AS BEGIN,
        (SYSDATE-s.MOMENT)*24*60*60 AS RUNNINGDURATION,
        TO_CHAR(s.moment,'HH24:mi:ss') AS END,
        s.DURATION,s.message,s.message_type AS STATE,s.PID,
        f.LABEL,F.COUNT,
        l.MESSAGE,l.CODE,l.ORIGIN
        FROM DFM_STAT  s
        left  JOIN DFM_FLOW f ON s.PID=f.PID
        left join DFM_LOG l ON s.PID=l.PID
        WHERE s.PROJECT='LEGACY' and s.context='Prod' 
            AND  s.MOMENT LIKE TO_DATE('11/12/2014','DD/MM/YYYY')
        order by s.message_type asc, 2 DESC, 5 DESC
    HELP...

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Par défaut
    Et tu souhaites garder tous les messages, toutes les origines et tous les codes relatifs à un enregistrement ou en sélectionner un précis ?

  18. #18
    Membre averti
    Homme Profil pro
    Assisstant de Projet
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assisstant de Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Par défaut
    J'aimerai garder toute les infos...

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Par défaut
    Dans ce cas tu dois chercher une fonction d’agrégation sous ORACLE pour tes informations de DFM_LOG.

    Puisque pour une ligne de DFM_STAT, tu as X lignes DFM_LOG, tu dois effectuer un regroupement sur les colonnes de DFM_STAT et une agrégation sur les colonne souhaités de DFM_LOG.

    Outre AVG, MIN, MAX, etc... qui ne te servirait à rien puisque ce sont des varchars que tu veux agréger, ils existent des fonctions de concaténation qui pourraient faire ce que tu veux.

    Sous mySQL il existe GROUP_CONCAT, il faudrait un équivalent sur Oracle.

    Toutefois sur un volume de 7000 lignes sans pagination avec chacun de ces 7000 lignes qui peut potentiellement avoir X lignes de log, il y a une mauvaise expression du besoin d'interface car ce sera illisible.
    Idée: Il vaudrait mieux rendre accessible les logs d'une ligne via un clic qui ferait une requête Ajax au clic par clic par exemple

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

Discussions similaires

  1. [MySQL] Optimiser une requête avec des tableaux PHP ?
    Par Khleo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/11/2011, 16h49
  2. [AC-2003] affichage d'une Requête avec regroupement
    Par AITADEL dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/01/2011, 06h14
  3. probleme d'affichage d'une table avec php
    Par K.aoutar dans le forum Langage
    Réponses: 6
    Dernier message: 01/09/2010, 18h09
  4. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 10h45
  5. recuperer une requête avec le composant TIBSQL ??
    Par vbcasimir dans le forum Bases de données
    Réponses: 11
    Dernier message: 31/05/2005, 13h05

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