Aller au contenu

question de consciences


antoineklein

Sujets conseillés

bonjour à tous.

voici une petite question que je me pose et afin de ne pas faire d'erreur, que je vous pose.

j'ai un site en php et mysql, avec un module d'admin;

dans ce module j'utilise plusieurs tables de la BD afin de pouvoir modifier ou supprimer une ligne, je peut également trier la liste par les entetes.

actuellement que ce soit pour faire la liste, editer le formulaire de modif ou reafficher la liste avec un autre critère de tri, je retape dans la base avec une requete sql pour alimenter une table (array).

ca marche bien mais est-ce judicieux ?

ne faudrait-il pas mieux que j'alimente la table avec une requete sql (que je remettrais à jour lors d'une modif ou d'une suppression) et que je tape que dans la table que je mettrais en variable de session ? ca prendra plus de mémoire mais la rapidité devrais être amélioré ?

qu'en pensez vous ?

qu'est ce qui est le plus pro ?

j'espère avoir été assez claire :-)

<loupilo: déplacé en PHP & MySQL>

Modifié par Loupilo
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Un tableau aussi volumineux en variable de session, ça ne me parait pas judicieux. J'opterais pour la solution requète au besoin.

NB : je te conseille de parler de tableaux, car le terme table désigne plutôt les tables mysql.

Lien vers le commentaire
Partager sur d’autres sites

Les bases de données sont faites pour ca, pas les sessions.

Utilises ta base de données pour ce genre de manipulations, tu y gagnera en confort ;)

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

je comprends bien la chose mais il y a quand meme qqchose qui me gène;

pas exemple pour l'affichage et le tri de la liste par click sur une des entetes.

Je trouve pas très optimizer de devoir refaire pour chaque choix de tri une requete sql alors que le TABLEAU (merci MarvinleRouge) ne change pas et cela nécessite alors le stockage du tableau dans une variable de session pour qu'elle soit conservé lors du rechargement de la page, mais c'est vrais que le tableau peut être assez important en fonction de l'agrandissement du contenu de la table (bd)

qu'en pensez vous ?

pour donner plus de précision sur le fonctionnement de mon module d'admin (visualisation d'une table):

1) requete de la table

2) stockage du resultat de la requête dans un tableau

3) tri du tableau en fonction de l'entete cliqué

4) affichage du tableau

si je clique sur un autre entre je recommence au 1 alors qu'il me paraitrais plus correcte d'aller au 3.

ps le tri ne peux se faire lors de l'étape 1 car certaines colonnes sont soumis à calcul, condition, ..

votre avis ?

Modifié par antoineklein
Lien vers le commentaire
Partager sur d’autres sites

1) requete de la table

2) stockage du resultat de la requête dans un tableau

3) tri du tableau en fonction de l'entete cliqué

4) affichage du tableau

si je clique sur un autre entre je recommence au 1 alors qu'il me paraitrais plus correcte  d'aller au 3.

ps le tri ne peux se faire lors de l'étape 1 car certaines colonnes sont soumis à calcul, condition, ..

Si tu cliques sur une autre colonne, tu appelles une autre page, donc on recommence à partir de 1/.

Le fait que ca rappelle une autre requète n'est pas génant en soi.

Par contre, tu peux faire des calculs dans une requète, et placer tes conditions avant la requète.

Essaies :

mysql_query("SELECT numero,(numero*5) as numero5 from table");

Si 'numero' est un champ qui contient un 'numéro', tu auras 2 champs renvoyés par cette requète. le champ numero, et le champ numero5, qui sera un multiple de numero.

Pour ce qui est de ce forum, par exemple. Lorsque l'on clique sur l'index du forum, il est tout à fait normal que le programme aille chercher les données dans la base. Si l'on reclique, il y retourne, etc..

De la même facon, il l'on clique sur l'index, puis sur le meme index, mais en triant une colonne. Il ira rechercher les infos dans la base. Ca ne me surprend pas.

Pour ne pas faire quelque chose comme ca, il y aurait la possibilité d'envoyer toute la table, et de faire un tri en javascript. Mais ca serait plus 'galère' qu'autre chose.

Personnellement, je n'ai jamais eu à envoyer les résultats d'une table dans une variable de session. Elles ne sont pas 'faites' pour cela.

D'ailleurs, prenons un exemple. Tu as une table de 1000 noms+prénoms. Tu appelles les 10 premiers de la table, en triant par le nom. Ca te sort les 10 premiers. Tu cliques sur 'tri par prénom'. Ca te sort les 10 premiers, 'tri par prénom'.

Pour faire comme tu dis, tu serais obligé d'extraire du premier coup l'ensemble des résultats, soit les 1000 noms+prénoms. Ce qui serait 'moins' logique.

Prenons un exemple avec un moteur de recherche. Si Google stockait, pour chaque internaute, une session de 8 milliards de 'mots/sites/etc.', ca serait pas cohérent.

Au lieu de ca, il cherche à dépiler de la table le strict minimum dont il a besoin. D'où les requètes, qui incluent exactement ce dont il a besoin, ni plus, ni moins.

A mon avis,

Nicolas.

Lien vers le commentaire
Partager sur d’autres sites

effectivement ca se défend, et puis si on part du principe que la variable de session n'est pas fait pour ca alors ca laisse moins de choix.

Merci pour vos réponses et éclairements :-)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...