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

  FORUM HardWare.fr
  Programmation
  PHP

  Classe simple pour mysql : questions !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classe simple pour mysql : questions !

n°1445800
kemkem
back to the /s
Posté le 21-09-2006 à 15:13:54  profilanswer
 

Hello,
 
Je fais du php à mes heures perdues :)
Mais voilà : depuis des années que j'en fais, je me suis toujours dis que je me déveloperais une petite classe pour simplifier le travail avec mysql.
Je me suis lancé !
 
J'ai donc créé une classe à inclure, comportant les fonctions utiles à la vie du dév. php/mysql.
 
Ma question est la suivante : Quand je fais un select, quelle philosophie adopter pour récuperer les lignes de résultats ?
 
1/ une fonction fetchObject() qui ferais un simple return mysql_fetch_object
2/ une fonction qui retournerais un tableau (d'objet ? ca serais plus simple..)
3/ autre solution ?
 
Au niveau des perfs je pense qu'il y a une certaine différence.. Mais je cherche aussi à simplifier le traitement des requetes..
Merci de vos suggestions !!

mood
Publicité
Posté le 21-09-2006 à 15:13:54  profilanswer
 

n°1445823
flo850
moi je
Posté le 21-09-2006 à 15:35:42  profilanswer
 

2/ va bouffer un paquet de ram , mais va etre plus facile a manipuler
 
perso ,je ferai les deux methodes ( genre fetchObject et fetchAllObject )  et je laisserai le choix à l'utilisateur  
a savoir qu'il existe une classe similaire dans le package PEAR ( DB )

n°1445824
kemkem
back to the /s
Posté le 21-09-2006 à 15:35:55  profilanswer
 

En fait, pour les select, je pense que je vais faire ceci
return mysql_fetch_assoc($this->results);
 
L'utilisation donnera kkchose comme :
$cnx = new simpleMysql(...);
$objArray = $cnx->select("select * from machin" );

n°1445825
kemkem
back to the /s
Posté le 21-09-2006 à 15:36:14  profilanswer
 

(j'ai l'impression d'etre super pas clair)...

n°1445826
kemkem
back to the /s
Posté le 21-09-2006 à 15:36:44  profilanswer
 

flo850 -> ok, recu
merci !

n°1445838
omega2
Posté le 21-09-2006 à 15:46:32  profilanswer
 

Zend fait un tableau de tableau pour ça ce que je trouves couillon vu la place mémoire que ca peut prendre. J'aurais vraiment préféré qu'ils fassent juste un tableau en laissant le développeur changer de ligne de donnée quand il en a besoin. Ca éviterait également de perdre du temps processeur en recopiant tous les éléments.

n°1445958
lkolrn
<comment ça marche?>
Posté le 21-09-2006 à 18:49:22  profilanswer
 

Tu peux effectivement construire ta classe en fonction de ce que vont te retourner tes requêtes SQL.
 
L'idée ici ça serait de récupérer tes résultats dans des variables membres qui vont bien :
 
- une variable simple pour un résultat unique ;
- un vecteur (1D) pour tout ou partie d'un enregistrement unique ;
- un tableau de vecteurs (matrice 2D donc) pour tout ou partie de plusieurs enregistrements.
 
Après il faut gérer ces différentes "structures" contenant tes résultats SQL afin de savoir à quoi chaque donnée correspond (pour quel enregistrement ? pour quel attribut de ta table ?). Tu utilises pour ça des compteurs d'une part (pour ordonner tes enregistrements), et des vecteurs (qu'on va nommer Vattribut ici) contenant les noms de tous les attributs (de la table) impliqués dans la requête.
Ainsi, par exemple, tu utiliseras pour un vecteur résultat (N attributs d'1 unique enregistrement) un tableau associatif + un tableau Vattribut,
chaque clé du tableau associatif étant une valeur de Vattribut, et chaque valeur de ce même tableau associatif un résultat unitaire de la requête.
 
Je ne sais pas si je m'exprime clairement, mais en gros en entrée dans l'instance de ta classe tu lui files la requête SQL, puis tu lui demandes de se taper le parsage (pour identifier et conserver les attributs en jeu), le comptage (on ne peut pas prévoir ça juste avec la requête), puis le découpage et la répartition des résultats dans les variables membres qui vont bien.
 
Je réfléchis au truc en même temps que j'écris, d'où la possibilité de grosses conneries ou autres approximations...  :whistle:  :sweat:  :whistle: En tout cas c'est un modèle simpliste d'une façon de traiter une requête SQL, et ça ne marcherait comme ça que pour du SELECT assez basique (typiquement SELECT... FROM... [WHERE...]), même si c'est ce qui s'emploie beaucoup concrètement... Bref, après il est nécessaire d'affiner et de compléter ce modèle en gérant également le traitement de requêtes à la syntaxe plus complexe.
 
Cependant, d'un simple point de vue pragmatique je doute de l'utilité (et de la performance, même si c'est pas trop la mort) d'un tel montage en php. Ca me paraît intéressant sur le plan théorique (si ya des fans de théorie du langage, ça devrait pas leur poser de problème de te formaliser tout ça, en beaucoup mieux certes^^') mais j'ai bien peur que ça s'arrête là.
Sinon ya aussi la solution, comme tu le proposes, d'encapsuler des fonctions php pour affiner/adapter un peu le paramétrage à ta sauce, mais encore une fois je suis pas sûr de la pertinence du truc... En tout cas ça irait très vite à mettre en oeuvre ;P


Message édité par lkolrn le 22-09-2006 à 00:27:23

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

  Classe simple pour mysql : questions !

 

Sujets relatifs
[MySQL] Taille de Blob[PHP /Mysql] Internal Server Error dans les parties administration
Table mysql pour un album photoQuestion sur les types de données de MySQL
[MySQL] Question rapide sur efficacité d'une requête[bash] enlever les questions dans la completion automatique ?
[MySQL/PHP] Impossible de renommer un fichier proposé en download[MySQL/PHP] Petit soucis de renommage de fichiers proposés en download
CMS simple ? 
Plus de sujets relatifs à : Classe simple pour mysql : questions !


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