Page 1 sur 1

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

Posté : 23 mai 2008, 00:18
par speccy666
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);

Posté : 23 mai 2008, 02:11
par Sékiltoyai
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… :-/

Posté : 23 mai 2008, 02:31
par AB
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.

Posté : 23 mai 2008, 17:47
par Victor BRITO
À défaut de nettoyer, tu peux utiliser la requête suivante :

Code : Tout sélectionner

SELECT * FROM listeqcm WHERE nomtheme LIKE 'CINEMA%'

Posté : 23 mai 2008, 19:52
par zeus
À 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

Posté : 14 juin 2008, 08:35
par speccy666
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

Posté : 14 juin 2008, 16:06
par Sékiltoyai
Au passage, ce n'est pas normal d'utiliser un varchar pour cette colonne, utilise plutôt un champ enum.