Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2124 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  affichage des résultats d'une requête SQL

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

affichage des résultats d'une requête SQL

n°1927458
romualb
Posté le 29-09-2009 à 00:30:14  profilanswer
 

Bonjour à tous
j'ai développé une classe PHP permettant d'afficher sous forme de liste les résultats d'un requête.
très simple à utiliser, elle gère le tri sur les colonnes, la pagination,
le contenu des cellules est entièrement paramétrable et peut être généré par des fonctions personnelles (calcul, traitements de chaine...)
le tout mis en forme entièrement pas CSS
 
pour en savoir plus : http://www.romualb.com/2009/09/27/ [...] istes.html

mood
Publicité
Posté le 29-09-2009 à 00:30:14  profilanswer
 

n°1927460
flo850
moi je
Posté le 29-09-2009 à 04:24:31  profilanswer
 

la mise en session , c'est mal ( que se passe t il si il y a 2 listes sur la pages, ou deux onglets ouvert du meme site ?

 

les noms de fonction mi anglais, mi français, c'est mal

 

qu'en est il de la gestion des erreurs ? du choix de la base de données à requeter ?

 

pour paginer une requetes, il y a de bien meilleures solutions que de tout ramener en mémoire ( LIMIT x,y)

 


As tu regardé du côté des orm pour concevoir quelque chose de réutilisable hors de ton contexte particulier ?


Message édité par flo850 le 29-09-2009 à 04:24:52

---------------

n°1927495
romualb
Posté le 29-09-2009 à 10:04:42  profilanswer
 

Merci pour tous ces commentaires constructifs (ou pas).
 

Citation :

la mise en session , c'est mal ( que se passe t il si il y a 2 listes sur la pages...


c'est vrai que je pourrais proposer de passer les arguments de tri et de pagination dans l'url, mais il y a aussi des arguments contre (perte des arguments en cas de changement de page et retour sur la liste...)
 

Citation :

les noms de fonction mi anglais, mi français, c'est mal


si tu veux
 

Citation :

qu'en est il du choix de la base de données à requeter ?


la classe est indépendante de la base de données. Le traitement SQL se fait en amont, le résultat est passé à la classe.
 

Citation :

pour paginer une requête, il y a de bien meilleures solutions que de tout ramener en mémoire ( LIMIT x,y)


lesquelles ?

n°1927580
flo850
moi je
Posté le 29-09-2009 à 14:13:12  profilanswer
 

si vraiment u préfère la session , prevoit le truc pour qu'il puisse stockjer plusieurs "requetes"

 

donc si je te passe un datasaet issu de sql server ou de postgresql , tu saura le gérer ?

 

pour paginer, il vaut largement mieux paginer au niveau de la requete ( syntaxe LIMIT  pour mysql par exemple) , pour ne pas tout charger . Mais ça implique de ne plus être aussi indépendant de la bdd que ce que tu le souhaiterai

Message cité 1 fois
Message édité par flo850 le 29-09-2009 à 14:14:00

---------------

n°1927586
skeye
Posté le 29-09-2009 à 14:19:34  profilanswer
 

flo850 a écrit :

pour paginer, il vaut largement mieux paginer au niveau de la requete ( syntaxe LIMIT  pour mysql par exemple) , pour ne pas tout charger . Mais ça implique de ne plus être aussi indépendant de la bdd que ce que tu le souhaiterai


ça c'est valide uniquement si ta base de données sait le faire sans une prise de tête monstrueuse.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1927599
masklinn
í dag viðrar vel til loftárása
Posté le 29-09-2009 à 14:34:02  profilanswer
 

romualb a écrit :

Citation :

la mise en session , c'est mal ( que se passe t il si il y a 2 listes sur la pages...


c'est vrai que je pourrais proposer de passer les arguments de tri et de pagination dans l'url, mais il y a aussi des arguments contre (perte des arguments en cas de changement de page et retour sur la liste...)


Tu les maintiens en rendant ton site "pagination-aware". Parce que je suis d'accord avec flo850: un site qui pète parce que des paramètres de locaux sont stockés en session (qui est par définition globale) c'est crispant.

 

Sans compter que stocker ces trucs en session signifie qu'il n'y a pas de liens, ça flingue potentiellement la possibilité de le cacher, et ça empêche les visiteurs de partager la page.

romualb a écrit :

Citation :

qu'en est il du choix de la base de données à requeter ?


la classe est indépendante de la base de données. Le traitement SQL se fait en amont, le résultat est passé à la classe.


Rends la classe db-aware alors (ou, encore mieux, utilise des itérateurs PHP et non des arrays), parce que devoir récupérer 100000 enregistrement pour n'en afficher que 10, c'est pas exactement efficace comme méthode.

 

Sinon, niveau API c'est assez horrible:

  • Des paramètres obligatoires (les données à paginer par exemple) qui sont associés avec un setter alors que ça devrait être fait dans le constructeur (qui devrait également gérer la taille des pages, avec des paramètres par défaut si besoin)
  • Comme déjà mentionné par flo850 le style de codage est horrible (mélanges entre camelCased et underscore_separated, préfixe m_ qui n'a aucun intérêt en PHP, mélange de français et d'anglais, …)
  • La classe fait beaucoup trop de choses, une classe qui fait de la pagination n'a pas à s'occuper de l'ordre de tri, ta classe devrait être séparée en une demi-douzaine (au moins). Autres trucs qu'une classe de pagination n'a pas à faire: s'occuper de la manière dont ses paramètres sont stockés (surtout si c'est pour les hardcoder dans la session), s'occuper du formattage à l'affichage, … ça manque de composition.


Globalement, je te suggère de regarder comment d'autres ont résolu le problème. le Paginator django a une API pas dégueu et fonctionne globalement bien, ça peut être un point de départ intéressant.


Message édité par masklinn le 29-09-2009 à 14:36:31

---------------
I've never understood the compulsion to use Web technologies minus the Web's security and deployment models. It seems a bit like throwing the orange away and eating the peel. — @ justinschuh‬
n°1927655
stealth35
Posté le 29-09-2009 à 15:43:52  profilanswer
 

je rejoin flo et Masklinn, je rajouterai qu'un systeme de template est bien plus pratique, le html au milieu de la class c'est pas top,  

 

des templates plus ou moins standardiser y'en a pas mal (ex : http://developer.yahoo.com/ypatter [...] arch.html),

 

et niveau autre API en complement regarde aussi vers Zend Paginator : http://framework.zend.com/manual/f [...] nator.html


Message édité par stealth35 le 29-09-2009 à 15:44:09

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  affichage des résultats d'une requête SQL

 

Sujets relatifs
Problème requête select avec double résultatsDes Tests Fonctionnels sur requête SQL
xml problème affichage dans Firefox[RESOLU]Optimisation d'une requête SQL
Récupérer résultats du bouton radio + zone de texte dans phpAffichage de toutes les dates
Problème affichage Safari (HTML/CSS) 
Plus de sujets relatifs à : affichage des résultats d'une requête SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR