|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
Bonsoir tout le monde
Je rencontre un petit problème en ce moment avec une génération de code sql via un formulaire, je vous explique... ![]() J'aimerais pouvoir faire un tri sur une liste d'offre d'emplois stocké dans une table de donnée, vu que soit il affiche tout (et dans ce cas je n'ai pas de condition dans ma requête) ou soit une partie définie par des listes déroulantes Voici comment j'ai imaginé la chose: Si tout doit être affiché, la variable vaut une chaine vide Sinon j’écris la requête dans une variable et je la transmets Voici le code que j'ai tapé: Tout d'abord une partie de ma classe Job ou je communique avec la bdd Job.php Code :
Code :
J'obtiens cette erreur: Code :
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\urbantech_v1\classes\Jobs.php on line 432 Code :
Code :
Code :
$annonce = $jobs->afficheJobFournisseur(); Auriez vous une idée d’où pourrait venir le problème? ou bien une solution parallèle? Merci d'avance |
||||||||
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Passer une requête entière ou des bouts de SQL à travers un formulaire est mauvais.
Ta requête doit être construite à l'arrivée ; seuls les paramètres sont transmis. Sinon quand même, en dehors du problème de fond sur ce que tu fais, le debug de ton code passe par l'affichage des erreurs PDO. Je ne me suis pas relu tes 150 lignes de code dans le détail mais je me suis quand même demandé pourquoi le select "secteur" copie sa valeur dans un champ caché "val_secteur". |
|
|
10
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
Merci pour cette réponse rapide :p
car je dois faire un tri sur les 2, donc des que ca marchera je mettrai le second paramètre qui sera l'id du secteur. Comment puis je m y prendre "proprement"? aurais tu un exemple (en sachant bien sur qu'aucun paramètre ne devrait être passé dans le cas ou je désire avoir tous les secteurs ou/et tous les publications) |
|
|
00
|
|
|
#4 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
C'est juste une question du moment ou tu fais les choses : au lieu par exemple de passer le bout de requête, tu passes simplement ton paramètre "hier" et tu le traites à la reception :
Code :
|
||
|
|
10
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
$where[] vaut quoi? un array?
Je vais essayer^^ |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
J'ai fais pareil que toi avec $where_date = ... au lieu de $where[] = ...
L'erreur reste la même Mais c'est sur c'est plus propre et plus lisible :p Merci |
|
|
00
|
|
|
#7 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Pour l'erreur, je t'ai dis, il faut controler ta requete et afficher les erreurs PDO.
|
|
|
10
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
Et comment puis je faire cela (dsl je suis un peu noob en php
)Aurais tu un tuto ou un exemple? |
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Jordan Etudiant Architecture Logiciel Inscription : mars 2011 Messages : 72 ![]() |
Tu peux déjà simplement récupérer le résultat de ta requête dans une variable et l'afficher.
Au moins voir ce qu'il se passe... ^^ |
|
|
10
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Salut !
Pour contrôler ta requête il suffit, avant de l'exécuter, de l'affecter à une variable et de l'afficher. Pour voir les erreurs PDO il existe la méthode errorInfo, tu trouveras des exemples d'utilisation dans la doc : http://fr.php.net/manual/fr/pdo.errorinfo.php
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
10
|
|
|
#11 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Tu peux chercher aussi un peu si tu n'as pas tout les éléments :
Par exemple : http://www.developpez.net/forums/d70...n-erreurs-pdo/ |
|
|
10
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
merci bcp je vais checker les liens et afficher les erreurs, je vous tiens au courant :p
|
|
|
00
|
|
|
#13 | ||||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
Bon il veut pas aficher les erreur (il me remet tjs la mm erreur à la place)
mais j ai trouver une solution alternatique Code :
![]() ceci me permet d'avoir la date d'hier et aujourd'hui Code :
AND (j.date_creation >= DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY)) J'ai essayer differente méthode Code :
Auriez-vous une idee? (pour mysql) |
||||||
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Bonjour,
J'ai testé la solution SELECT DATE_SUB( CURRENT_DATE( ) , INTERVAL 1 DAY ) et elle fonctionne très bien (elle retourne la date d'hier). Es tu sur que le problème ne vient pas d’ailleurs ? |
|
|
00
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
bah si je fais ceci
Code :
$where_date = $where_date.' AND (j.date_creation = DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY))'; et avec ceci Code :
$where_date = $where_date.' AND (j.date_creation >= DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY))'; Référence Nom de la fonction Secteur Date 1522552011 testttt 2 ICT 25/5/2011 1532452011 test3 ICT 24/5/2011 1472452011 test Engineering 24/5/2011 Bizarre quand même :/ |
|
|
00
|
|
|
#16 |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Fais juste un :
Code :
SELECT DATE_SUB( CURRENT_DATE( ) , INTERVAL 1 DAY ) |
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
effectivement ca renvois bien a hier :s
le problème ne serait pas car la date dans ma db est au format datetime (2011-05-24 14:50:28) ? |
|
|
00
|
|
|
#18 | |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Citation:
. Bizarre :/.J'vais essayer de voir si je trouve une solution. |
|
|
|
00
|
|
|
#19 |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
J'ai trouvé ceci : (attention c'est crade)
Code :
SELECT SUBTIME( SUBTIME( NOW( ) , CURRENT_TIME ) , "1 00:00:00" ) |
|
|
00
|
|
|
#20 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 56 ![]() |
Je viens de trouver le pq mais pas le comment ^^
vu qu'il y a que le jour moi annee de passé en parametre, 'il considere que l'heure est 00:00:00 d'ou ca marcherait avec le >= et non pas avec le = (vu que je n'avais aucun poste avec 00:00:00) solution faire un bettwen entre 00:00:00 et 23:59:59, mais comment faire pour lui faire passé l'heure avec cette fonction xD |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com