Enregistrement non détecté par select...Un OVNI...je craque!

Eléphant du PHP | 58 Messages

23 mai 2008, 00:18

Je fais un:

Code : Tout sélectionner

SELECT * FROM `listeqcm` WHERE nomtheme='CINEMA'
et je n'obtiens que 7 résultats alors que ma base en contient 9....

Rien de plus à dire...je ne comprend pas. Merci à vous.

Code : Tout sélectionner

******************************La copie de la table*********** -- phpMyAdmin SQL Dump -- version 2.10.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Ven 23 Mai 2008 à 00:14 -- Version du serveur: 5.0.41 -- Version de PHP: 5.2.3 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de données: `questar` -- -- -------------------------------------------------------- -- -- Structure de la table `listeqcm` -- CREATE TABLE `listeqcm` ( `idqcm` smallint(6) NOT NULL auto_increment, `nomtableqcm` varchar(40) NOT NULL, `nompresqcm` varchar(40) NOT NULL, `infoqcm` varchar(100) NOT NULL, `nbquestions` tinyint(4) NOT NULL, `nomtheme` tinytext NOT NULL, `passneeded` tinyint(1) NOT NULL, `qcmactif` tinyint(1) NOT NULL, `datecreation` date NOT NULL, `auteurqcm` varchar(15) NOT NULL, `nbpointsmax` tinyint(4) NOT NULL, PRIMARY KEY (`idqcm`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ; -- -- Contenu de la table `listeqcm` -- INSERT INTO `listeqcm` (`idqcm`, `nomtableqcm`, `nompresqcm`, `infoqcm`, `nbquestions`, `nomtheme`, `passneeded`, `qcmactif`, `datecreation`, `auteurqcm`, `nbpointsmax`) VALUES (5, 'cinefrench', 'le cinéma français', 'une tranche de cinéma pur français', 0, 'CINEMA', 0, 1, '2008-05-19', 'speccy', 100), (9, 'cine2D3D', 'le cinéma d`animation traditionnel ou 3D', '', 0, 'CINEMA', 0, 1, '2008-05-20', 'speccy', 100), (10, 'cinepolar', 'le cinéma des polars et thrillers', '', 0, 'CINEMA', 0, 1, '2008-05-20', 'speccy', 100), (11, 'cineaction', 'le cinéma d`action et d`aventure', '', 0, 'CINEMA', 0, 1, '2008-05-20', 'speccy', 100), (12, 'cinefun', 'les comédies sur le grand écran.', '', 0, 'CINEMA\r\n\r\n', 0, 1, '2008-05-20', 'speccy', 100), (13, 'cinedrame', 'les drames et films historiques', '', 0, 'CINEMA', 0, 1, '2008-05-20', 'speccy', 100), (14, 'cinehorreur', 'films d''horreurs et fantastiques', 'toutes les questions pour vous faire trembler et vous refaire vivre vos années d''errance gore.', 0, 'CINEMA\r\n', 0, 1, '2008-05-20', 'speccy', 100), (15, 'cineSF', 'les films de science fiction.', '', 0, 'CINEMA', 1, 1, '2008-05-20', 'speccy', 127), (16, 'sciences1', 'Nature, sciences et techniques.', '', 0, 'SCIENCES', 1, 1, '2008-05-20', 'speccy', 100), (17, 'sciences2', 'Nature, sciences et techniques 2.', 'un nouveau questionnaire sur la nature comme vous l''avez demandé.', 0, 'SCIENCES', 0, 1, '2008-05-20', 'speccy', 100), (18, 'sciences3', 'Nature, sciences et techniques 3.', '', 0, 'SCIENCES', 0, 1, '2008-05-20', 'speccy', 100), (19, 'sciences4', 'Nature, sciences et techniques 4.', '', 0, 'SCIENCES', 1, 1, '2008-05-20', 'speccy', 120), (20, 'BDclassic', 'La BD classique', '', 0, 'BANDE-DESSINEE', 0, 1, '2008-05-20', 'speccy', 100), (21, 'art1', 'L''art sous toutes ses formes', 'peinture, photo, sculpture, art modernes ou plus traditionnel; tous ce qui est créé et qui fait réfl', 0, 'ARTS', 0, 1, '2008-05-20', 'speccy', 100), (22, 'sports1', 'tout le sport pour les accros', '', 0, 'SPORTS', 1, 1, '2008-05-20', 'speccy', 120), (23, 'cinedivers', 'tous le cinema', '', 0, 'CINEMA', 1, 1, '2008-05-20', 'speccy', 125);

ViPHP
ViPHP | 5924 Messages

23 mai 2008, 02:11

Tu as 7 enregistrements contenant 'CINEMA', plus un contenant 'CINEMA\r\n\r\n', idem, rien de plus à dire, tu peux mettre le tag résolu… :-/

ViPHP
AB
ViPHP | 5818 Messages

23 mai 2008, 02:31

Tu as 7 enregistrements contenant 'CINEMA', plus un contenant 'CINEMA\r\n\r\n', idem, rien de plus à dire, tu peux mettre le tag résolu… :-/
Il y en a deux contenant 'CINEMA\r\n\r\n' ce qui fait bien 9 au total :)

@speccy666 si tu fais tes enregistrements via php utilise la fonction trim() sur ces champs, ce qui te permettra d'éliminer éventuellement ces caractères lors de l'enregistrement. Ou dans ton formulaire utilise un champ de type input plutôt que textarea.

Mammouth du PHP | 2937 Messages

23 mai 2008, 17:47

À défaut de nettoyer, tu peux utiliser la requête suivante :

Code : Tout sélectionner

SELECT * FROM listeqcm WHERE nomtheme LIKE 'CINEMA%'

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2008, 19:52

À défaut de nettoyer, tu peux utiliser la requête suivante :

Code : Tout sélectionner

SELECT * FROM listeqcm WHERE nomtheme LIKE 'CINEMA%'
Sachant que cette solution doit être prise comme une solution de secours car plus gourmande, et tu risques d'avoir d'autres enregistrements (tout ceux qui commencent par 'CINEMA').

La seule solution viable à terme, c'est de nettoyer les données
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 58 Messages

14 juin 2008, 08:35

Tardivement , merci à vous!

En fait les 2 champs avec CINEMA et les slashes après n'étaitent pas pris en compte par la requete; et s'affichaient pareil dans la saisie.

Mais grâce à cet import et le fait finalement que je poste ici le code SQL a permis de faire apparaitre l'erreur...

Merci les petits amis.

Jean Marc

ViPHP
ViPHP | 5924 Messages

14 juin 2008, 16:06

Au passage, ce n'est pas normal d'utiliser un varchar pour cette colonne, utilise plutôt un champ enum.