|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 45 ![]() |
bonsoir,
j'ai créé un formulaire dans lequel j'ai 2 boutons (mois, annee) + 1 bouton "envoyer" ma requête fait appel à 2 tables: 1 table "clients" et 1 table "documents" dans ma table "documents", j'ai un champ 'clientID' qui joint l'ID de ma table "clients"... jusqu'ici tout va bien je souhaiterai créer une requête demandant à ce qu'on m'affiche la liste des clients (clients.nom_client) en filtrant cette liste par le champ 'temps' (au format: 2010-01-13 par ex.) qui contient à la fois le mois et l'année (suis-je suffisamment clair ?). voici le code de ma requête que je pensais juste: Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
on jointure se fait avec JOIN
Code :
Code :
WHERE MONTH(documents.temps) = valeur_mois AND YEAR(documents.temps) = valeur_annee |
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 45 ![]() |
bonsoir, et merci pour ta réactivité
bon, maintenant, je m'y perd encore plus... (débutant oblige) je suis d'accord pour la jointure mais pour le filtre, j'ai modifié le champ 'temps' avec DATE... je n'ai plus que l'année, le mois et le jour... jusque là, je suis. Code :
WHERE MONTH(documents.temps) = valeur_mois AND YEAR(documents.temps) = valeur_annee Est-ce que je dois corriger les valeurs de mes boutons... parce que je me retrouve avec "valeur_mois" et "valeur_annee" (voir code)... quelle est la signification de ces 2 éléments ? je me servais de "LIKE et % servent pour traiter des chaines de caractères", parce que je ne connaissais que cette manière de récupérer les infos... aujourd'hui tu m'apprends à passer par un autre chemin beaucoup plus efficace à priori... mais incompréhensible aujourd'hui pour moi... j'ai besoin de plus de pédagogie... merci |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 45 ![]() |
... j'oubliais...
j'ai testé le champ 'temps' avec DATE comme type... tous mes futurs enregistrements me retournent maintenant comme valeur 0000-00-00 (???). Ce n'est évidemment pas souhaitable. le type TIMESTAMP m'offrait la possibilité d'avoir accès à "on update current timestamp" qui me permettait de créer une date de création et/ou de modification de l'enregistrement... j'ai oublié quelque chose ? merci |
|
|
00
|
|
|
#5 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Si tu preferes utiliser un type TIMESTAMP tu peux quand même obtenir les informations du mois et de l'années
Code :
MONTH(FROM_UNIXTIME(documents.temps)) = valeur_mois |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 45 ![]() |
désolé pour ce réveil matinal...
effectivement, je suis plus à l'aise avec un TIMESTAMP... je médite tes commentaires... mais, pour ma culture personnelle... DATE reste pour moi un échec... mes enregistrements doivent automatiquement être datés, qu'ils le soient en mode création ou en mode modification je te laisse tranquille pour aujourd'hui... week-end oblige merci encore |
|
|
00
|
|
|
#7 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 45 ![]() |
bonsoir,
J'ai employé JOIN et ON pour mes jointures (OK). Le reste, je pense l'avoir assimilé... j'obtiens aujourd'hui ce que je voulais... une liste d'après ma requête SQL. Lorsque je liste sur ma page mes enregistrements, ils s'affichent correctement mais je voudrais qu'apparaisse sur 1 page un certain nombre d'enregistrement. Quand le nombre d'enregistrement est atteint sur une seule page, 4 boutons me permettent d'accéder à: page précédente, page suivante, début de la liste et fin de la liste Or, l'affichage de la première page se passe bien, par contre, pour page suivante, page précédente, début liste, fin liste, les pages générées sont vides. Pourquoi ? Ma requête se fait sur 3 variables connues: mois, annee et marques Suis-je sensé retrouver ces trois variables dans: Code :
<a href="<?php printf("%s?pageNum_rsRecap=%d%s", $currentPage, max(0, $pageNum_rsRecap - 1), $queryString_rsRecap); ?>">page précédente</a> Code :
<a href="<?php printf("%s?pageNum_rsRecap=%d%s", $currentPage, min($totalPages_rsRecap, $pageNum_rsRecap + 1), $queryString_rsRecap); ?>">page suivante</a> Code :
<a href="<?php printf("%s?pageNum_rsRecap=%d%s", $currentPage, 0, $queryString_rsRecap); ?>">début de la liste</a> Code :
<a href="<?php printf("%s?pageNum_rsRecap=%d%s", $currentPage, $totalPages_rsRecap, $queryString_rsRecap); ?>">fin de la liste</a> Ma requête SQL Code :
Code :
merci pour votre patience |
||||
|
|
00
|
|
|
#8 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Ta requete est toujours la requete pourrie du début.
Enfin réflechi un peu, tu écris Code :
WHERE documents.temps LIKE %col_mois% AND documents.temps LIKE %col_annee% |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 45 ![]() |
La forme peut effectivement te paraître primaire, voire 'pourrie' dans:
Code :
WHERE documents.temps LIKE %col_mois% AND documents.temps LIKE %col_annee% Le bon sens voudrait sans doute qu'il soit écrit comme cela Code :
WHERE MONTH(FROM_UNIXTIME(documents.temps)) = valeur_mois Si la syntaxe de cette requête est mal rédigée (je suis d'accord), pourquoi influence-t-elle le problème de l'affichage des points "page suivante", "page précédente"... cités avant ? Je ne demande qu'à apprendre. Dernière modification par pp_le_moko ; 06/02/2010 à 03h27. |
|
|
00
|
|
|
#10 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#11 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 45 ![]() |
Tu me dis qu'il faut écrire comme tu me le montres... je n'ai rien contre puisque je suis là pour apprendre.
Est-ce que, écrit comme ça, cette forme est correcte ? Code :
merci |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com