resultats d'une requete different sous phpmyadmin

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : resultats d'une requete different sous phpmyadmin

par albat » 02 févr. 2009, 20:43

Une autre idée (on ne sait jamais)...

Tu testes les valeurs de tes dates en comparant des chaînes de caractères.
Si le format des dates est différent, cela peut provoquer une erreur.

Si c'est ça, deux possibilités de correction.

La crade :
AND  (S.s1_date_debut like '%2008%'
      OR S.s1_date_fin like '%2008%')              
La propre :
AND  (DATE_FORMAT(S.s1_date_debut, '%Y') = 2008
      OR DATE_FORMAT(S.s1_date_fin, '%Y') = 2008)

par albat » 02 févr. 2009, 20:37

Et en réécrivant ta requête avec ces quelques suggestions de forme ?...
SELECT D.id, D.nom, D.prenom
FROM   demandeur D JOIN suivi S ON D.id = S.id_dem // jointure, plus propre
WHERE  D.valide = 'Y'
  AND  D.cat_deposant = 7                          // pas d'apostrophes si valeur numérique
  AND  (S.s1_date_debut like '2008%'
       OR S.s1_date_fin like '2008%')              // je préfère utiliser OR en SQL et || en PHP
  AND  S.solution1= 13                             // pas d'apostrophes si valeur numérique
ORDER BY D.nom                                     // ASC par défaut, donc facultatif

resultats d'une requete different sous phpmyadmin

par logone » 02 févr. 2009, 20:23

Salut,

Depuis quelques jours je m'arrache les cheveux j'ai une requete assez simple.
voici les tables

Code : Tout sélectionner

CREATE TABLE `demandeur` ( `id` int(11) NOT NULL auto_increment, `date_insert` datetime NOT NULL default '0000-00-00 00:00:00', `id_deposant` int(11) NOT NULL default '0', `cat_deposant` int(11) NOT NULL default '0', `date_inscription` datetime NOT NULL default '0000-00-00 00:00:00', `nouvel_inscrit` varchar(5) NOT NULL default '', `actualisation` varchar(5) NOT NULL default '', `suivi` varchar(5) NOT NULL default '', `referent` varchar(5) NOT NULL default '', `charge_accueil` varchar(5) NOT NULL default '', `date_suivi` date NOT NULL default '0000-00-00', `plie` varchar(15) NOT NULL default '', `date_plie` date NOT NULL default '0000-00-00', `provenance` int(3) NOT NULL default '0', `demande_initiale` varchar(25) default '0', `civilite` varchar(30) NOT NULL default '', `nom` varchar(255) NOT NULL default '', `nom_jf` varchar(255) NOT NULL default '', `prenom` varchar(255) NOT NULL default '', `adresse` varchar(255) NOT NULL default '', `ville` varchar(255) NOT NULL default '', `situation` varchar(100) NOT NULL default '', `enfant` varchar(10) NOT NULL default '', `commentaire` text NOT NULL, `tel` varchar(20) NOT NULL default '', `port` varchar(20) NOT NULL default '', `email` varchar(255) NOT NULL default '', `date_naissance` date NOT NULL default '0000-00-00', `age` char(3) NOT NULL default '', `nationalite` varchar(100) NOT NULL default '', `commentaire2` text NOT NULL, `diplomes` char(3) NOT NULL default '', `diplomes_obtenus` text NOT NULL, `scolarise_en_FR` char(3) NOT NULL default '', `langues` varchar(255) NOT NULL default '', `niveau` char(3) NOT NULL default '', `autorisation_travail` varchar(10) NOT NULL default '', `permisA` char(3) NOT NULL default '', `permisB` char(3) NOT NULL default '', `permisC` char(3) NOT NULL default '', `permisD` char(3) NOT NULL default '', `permisE` char(3) NOT NULL default '', `permisA_encours` char(3) NOT NULL default '', `permisB_encours` char(3) NOT NULL default '', `permisC_encours` char(3) NOT NULL default '', `permisD_encours` char(3) NOT NULL default '', `permisE_encours` char(3) NOT NULL default '', `licence_cariste` varchar(15) NOT NULL default '', `vehicule` char(3) NOT NULL default '', `autre_permis` varchar(255) NOT NULL default '', `anpe` varchar(255) NOT NULL default '', `date_inscription_anpe` date NOT NULL default '0000-00-00', `date_demandeur` date NOT NULL default '0000-00-00', `ressources` varchar(255) NOT NULL default '', `commentaire3` text NOT NULL, `date_debut_allocation` date NOT NULL default '0000-00-00', `date_fin_allocation` date NOT NULL default '0000-00-00', `cdaph` varchar(15) NOT NULL default '', `experience_pro1_cat` varchar(10) NOT NULL default '', `experience_pro1_sscat` varchar(10) NOT NULL default '', `experience_pro1_ssscat` varchar(10) NOT NULL default '', `duree_exp_pro1` char(3) NOT NULL default '', `experience_pro2_cat` varchar(10) NOT NULL default '', `experience_pro2_sscat` varchar(10) NOT NULL default '', `experience_pro2_ssscat` varchar(10) NOT NULL default '', `duree_exp_pro2` char(3) NOT NULL default '', `categorie` char(3) NOT NULL default '', `commentaire4` text NOT NULL, `emploi_recherche1` varchar(255) NOT NULL default '', `emploi_recherche2` varchar(255) NOT NULL default '', `secteur` varchar(50) default NULL, `commentaire5` text NOT NULL, `valide` char(3) NOT NULL default '', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1971 ;

Code : Tout sélectionner

CREATE TABLE suivi ( id int(11) NOT NULL auto_increment, id_dem char(11) NOT NULL default '0', id_deposant int(11) NOT NULL default '0', cat_deposant int(11) NOT NULL default '0', `date` datetime NOT NULL default '0000-00-00 00:00:00', date_rdv date NOT NULL default '0000-00-00', observation text NOT NULL, solution1 char(50) NOT NULL, s1_date_debut date NOT NULL default '0000-00-00', s1_date_fin date NOT NULL default '0000-00-00', solution2 varchar(50) NOT NULL default '', s2_date_debut date NOT NULL default '0000-00-00', s2_date_fin date NOT NULL default '0000-00-00', commentaire text NOT NULL, date_sortie_dispositif date NOT NULL default '0000-00-00', nom_contact varchar(255) NOT NULL default '', tel_contact varchar(100) default NULL, nom_entreprise varchar(255) NOT NULL default '', lieu varchar(255) NOT NULL default '', poste varchar(255) NOT NULL default '', duree varchar(100) default NULL, commentaire2 text NOT NULL, ecart varchar(100) NOT NULL default '', environnement varchar(100) NOT NULL default '', sante varchar(100) NOT NULL default '', rqth char(3) NOT NULL default '', comm1 text NOT NULL, ecart_competence char(3) NOT NULL default '', comm2 text NOT NULL, savoir_etre char(3) NOT NULL default '', comm3 text NOT NULL, salaire_mini char(3) NOT NULL default '', comm4 text NOT NULL, valide char(3) NOT NULL default '', UNIQUE KEY id (id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

SELECT demandeur.id, demandeur.nom, demandeur.prenom from demandeur,suivi where demandeur.valide='Y' and suivi.id_dem=demandeur.id and demandeur.cat_deposant='7' and (suivi.s1_date_debut like '2008%' || suivi.s1_date_fin like '2008%') and suivi.solution1='13' order by demandeur.nom ASC

Qui sous phpmyadmin me renvoie 3 resultats
et uniquement 2 dans ma page j'avoue ne rien comprendre je n'ai pas de limit dans la requete qui pourrait tronquer ce resultat.

Merci de votre aide.

Après vérification il me manque tout le temps le 1er element de resultat.