FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage interprété(Php, Perl...)


  Question programmation SQL / web / base de données

 




Il y a 21 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question programmation SQL / web / base de données

n°7807
cfrankb
Posté le 20-01-2008 à 00:25:20  profilanswer
 

SITUATION: Tu as une table (e.g. activités) et tu veux extraire tous les enregistrements de celle-ci qui appartiennent à un utilisateur.
 
La logique conventionnelle serait de faire une requête du genre: SELECT * FROM activities WHERE u_uid=$user_uid;
Par la suite tu obtiens un RecordSet et effectuera une boucle pour extraire chaque ligne (row) jusqu'à ce que la fin de données soit obtenues.  
 
PROBLEM: On m'a dit qu'il y avait une autre façon de faire, qui permettra d'obtenir plus d'une ligne (row) à la fois et ainsi contournée le besoin d'utiliser une boucle.
 
QUESTIONS: La solution recherchée pourrait s'appliquer soit en PHP ou en C# (contexte: MySQL ou MSSQL). Est-ce que quelqu'un a soit un exemple de code à partager, le nom ou la démarche logique à suivre pour obtenir le résultat souhaité. Alternativement, si vous pensez que c'est impossible vous pouvez donner la raison qui vous amène à cette conclusion.
 
Merci pour votre aide.

mood
Google
Posté le 20-01-2008 à 00:25:20  profilanswer
 

n°7808
Dr Lous
I see old password
Posté le 23-01-2008 à 09:36:18  profilanswer
 

deja pas de "select *", c'est pas beau, pas secure, pas dutout optimisé, autant faire des goto dans le code xD
et aussi rajouter des protections contre l'injection SQL ;)
 
Je vois pas pk tu veux plus d'une ligne à la fois O_o ton traitement sera identique a chaque ligne vu que c'est une activité diff sur chacune d'entre elles. C'est pour ca que c'est une structure en "table" ^_^
 
Après si tu veux faire tu tri ou autre de ce genre, c'est une autre histoire...
 
Faire une boucle n'est pas du mauvais code ^^, c'est juste que tu as besoin d'effectuer le meme traitement sur plusieurs données (une série).

n°7809
cfrankb
Posté le 23-01-2008 à 14:09:35  profilanswer
 

Dr Lous a écrit :

Je vois pas pk tu veux plus d'une ligne à la fois O_o ton traitement sera identique a chaque ligne vu que c'est une activité diff sur chacune d'entre elles.


 
Parce c'est ainsi que la question d'entrevu m'a été donnée. Il y a-t-il une façon d'extraire les données sans utiliser de boucle en PHP? J'ai vérifié les functions MySQL de PHP et ces dernières ne semblent pas offrir cette option. J'en conclus qu'il est fort probable que cette dernière question concernait spécifiquement le C# mais je veux m'en assurer.  
 
Regards,
Frank B.

n°7810
Dr Lous
I see old password
Posté le 23-01-2008 à 14:20:00  profilanswer
 

apres ca depends comment on interprete la question...
 
si tu parle en C# (ou .Net tout court) tu peux soit être en mode connecté, soit en mode deconnecté
 
difference entre DataAdapter et DataReader ;)
 
 
Sinon en php, ou même en .net, c'est toujours le format d'origine les "lignes"... en supposant que tu as un SELECT * FROM x where z=u; tu auras un resultat en ligne classique...
 
sinon je vois pas :/

n°7811
cfrankb
Posté le 24-01-2008 à 05:40:48  profilanswer
 

Dr Lous a écrit :

apres ca depends comment on interprete la question...
 
difference entre DataAdapter et DataReader ;)


 
la question ne précisait pas. mon expérience de programmation web est principalement en PHP/MySQL.  c'était le critère premier de l'offre d'emploi mais il cherchait aussi quelqu'un qui pourrait être migrer vers le C# dans le future. C'est pourquoi que je suspecte que celle-ci (comme celle sur les fonctions virtuelles) était probablement une question C# et ce bien qu'aucun context n'ait été donné.
 

Dr Lous a écrit :

Sinon en php, ou même en .net, c'est toujours le format d'origine les "lignes"... en supposant que tu as un SELECT * FROM x where z=u; tu auras un resultat en ligne classique...


 
On est donc tous d'accord sur ce point. Il n'y pas d'autre solution en PHP.  
 
La seule interrogation est à savoir si on peut obtenir plus d'une ligne à la fois en C#. Certains m'affirment que oui. D'autres que non. Et il y a aussi celui qui fait remarquer à tout le monde que ça change rien à la fin puisque le code va boucler tôt ou tard de toute façon. :p

n°7812
Dr Lous
I see old password
Posté le 24-01-2008 à 08:21:27  profilanswer
 

ben we  c'est des lignes a la sources :cry:
 
m'enfin je code en C# tt les jours au taf, et j'ai tj recup en ligne pas en "bloc" puis meme je vois pas comment xD

n°7813
nicodache
marmotte en chocolat concept ©
Posté le 24-01-2008 à 12:42:09  profilanswer
 

ya pas moyen, en sql, d'agréger un result set en une seule ligne ? :D
si tu connais le nombre de champs à récupéré pour chaque élément, tu peux boucler en php/C# sur un seul résultset qui est une variable de ton langage, p'tet plus rapide (ou pas)


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°7814
Dr Lous
I see old password
Posté le 24-01-2008 à 12:49:36  profilanswer
 

boarf si ya moyen de faire des trucs bien tordu, mais franchement je vois pas l'interet.
 
Tu as une table a l'entrée, tu en as une à la sortie, même en faisant un RecordSet fortement typé or like, tu as tj une table, c'est le format de stockage d'origine... SQL que tu stocke des oranges ou des voitures il s'en cogne, il stocke ^_^, a toi dans ton code de faire une couche d'adaptation si tu veux transformer ton resultat en concessionnaire ou en panier a fruit ^_°
 

n°7815
nicodache
marmotte en chocolat concept ©
Posté le 24-01-2008 à 13:55:15  profilanswer
 

superbe explication  [:muster:3]


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
mood
Google
Posté le 24-01-2008 à 13:55:15  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage interprété(Php, Perl...)


  Question programmation SQL / web / base de données

 

Hit Parade