2010-02-07 5 views
2

http://new.monmouthchineseschool.com/curriculum/cantonese/textbook.php
si vous jetez un oeil à 'C1'Comment ma requête SQL ne triait-elle pas la colonne?

一 十 十一 十二 十三 二 三 四 五 六 七 八 九

qui est la façon dont tous les liens ressemblent .
c'est le mysql db pour cette classe

CREATE TABLE IF NOT EXISTS `mon_textbook` (
    `id` int(11) NOT NULL auto_increment, 
    `class` varchar(255) NOT NULL, 
    `ch` varchar(255) NOT NULL, 
    `sTitle` varchar(255) NOT NULL, 
    `fTitle` varchar(255) NOT NULL, 
    `text` longtext NOT NULL, 
    UNIQUE KEY `id` (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=117 ; 

-- 
-- Dumping data for table `mon_textbook` 
-- 

INSERT INTO `mon_textbook` (`id`, `class`, `ch`, `sTitle`, `fTitle`, `text`) VALUES 
(14, 'C1', '1', '一', '第一課', ''), 
(15, 'C1', '2', '二', '第二課', ''), 
(16, 'C1', '3', '三', '第三課', ''), 
(17, 'C1', '4', '四', '第四課', ''), 
(18, 'C1', '5', '五', '第五課', ''), 
(19, 'C1', '6', '六', '第六課', ''), 
(20, 'C1', '7', '七', '第七課', ''), 
(21, 'C1', '8', '八', '第八課', ''), 
(22, 'C1', '9', '九', '第九課', ''), 
(23, 'C1', '10', '十', '第十課', ''), 
(24, 'C1', '11', '十一', '第十一課', ''), 
(25, 'C1', '12', '十二', '第十二課', ''), 
(26, 'C1', '13', '十三', '第十三課', ''); 

la requête SQL qu'il appelle

$sql = 'SELECT * FROM '.dbPre.'textbook WHERE `class`="'.$textbookClass[$ii].'" ORDER BY `ch` ASC'; 

au lieu de ressembler à la façon dont il est au-dessus, il devrait ressembler à ceci

Ajouter à la liste de souhaits Ajouter au comparateur

Répondre

4

Votre colonne ch contient des chaînes, triées mais alphanumériquement et non numériquement. Vos résultats sont dans cet ordre '1 10 11 12 13 2 3 4 ...'

Modifiez la colonne ch en un type entier ou convertissez-la en nombre entier dans la zone ORDER BY. Je recommanderais l'ancien.

+0

Et comment pouvez-vous détecter les nombres et les décoder pour former de telles images? Je peux seulement détecter les 5 premiers numéros 1 2 3 4 5 – osgx

Questions connexes