За последние 24 часа нас посетили 154602 программиста и 2131 робот. Сейчас ищут 1142 программиста ...

Не работает простой SELECT мистическое поле

Тема в разделе "MySQL", создана пользователем VOZIS, 11 апр 2012.

  1. VOZIS

    VOZIS Активный пользователь

    С нами с:
    11 апр 2012
    Сообщения:
    5
    Симпатии:
    0
    Работа с базой в Joomla 2.5.

    Вот так работает:
    "SELECT introtext FROM #__content WHERE catid = $id_cat"

    Так, на пример, тоже работает:
    "SELECT introtext, created FROM #__content WHERE catid = $id_cat" (Вместо created и introtext можно любые поля из таблицы подставлять кроме одного "fulltext", которое как раз и нужно)

    Вот так НЕ работает:
    1 - "SELECT fulltext FROM #__content WHERE catid = $id_cat"
    2 - "SELECT introtext, fulltext FROM #__content WHERE catid = $id_cat"
    Возвращает error 1064

    Единственный способ получить содержимое fulltext:
    "SELECT * FROM #__content WHERE catid = $id_cat"

    Что не так с этим "fulltext" никак не могу понять.
     
  2. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Re: Не работает простой SELECT Где я туплю???

    Возможно проблема с кодировкой.
     
  3. VOZIS

    VOZIS Активный пользователь

    С нами с:
    11 апр 2012
    Сообщения:
    5
    Симпатии:
    0
    Re: Не работает простой SELECT Где я туплю???

    Не вижу где могут быть проблемы с кодировкой.
    Joomla эту таблицу создает так:

    CREATE TABLE `#__content` (
    `id` integer unsigned NOT NULL auto_increment,
    `asset_id` INTEGER UNSIGNED NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
    `title` varchar(255) NOT NULL default '',
    `alias` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
    `title_alias` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '' COMMENT 'Deprecated in Joomla! 3.0',
    `introtext` mediumtext NOT NULL,
    `fulltext` mediumtext NOT NULL,
    `state` tinyint(3) NOT NULL default '0',
    `sectionid` integer unsigned NOT NULL default '0',

    ... куча других полей...

    `featured` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Set if article is featured.',
    `language` char(7) NOT NULL COMMENT 'The language code for the article.',
    `xreference` varchar(50) NOT NULL COMMENT 'A reference to enable linkages to external data sets.',
    PRIMARY KEY (`id`),
    KEY `idx_access` (`access`),
    KEY `idx_checkout` (`checked_out`),
    KEY `idx_state` (`state`),
    KEY `idx_catid` (`catid`),
    KEY `idx_createdby` (`created_by`),
    KEY `idx_featured_catid` (`featured`,`catid`),
    KEY `idx_language` (`language`),
    KEY `idx_xreference` (`xreference`)
    ) DEFAULT CHARSET=utf8;
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    сделай `fulltext`

    Добавлено спустя 1 минуту 7 секунд:
    и вообще полезная привычка ставить эти симпатичные ` — спасает от дурацких заморочек
     
  5. VOZIS

    VOZIS Активный пользователь

    С нами с:
    11 апр 2012
    Сообщения:
    5
    Симпатии:
    0
    Не пользовался никогда кавычками для полей, кстати. Покапался в документации MySQL и ничего про них не нашел, везде без кавычек. Зачем они или где про это можно почитать?

    Впрочем, попытка не пытка. Вот что получилось:
    С кавычками если написать то возвращает просто названия выбраных полей.
    То есть, такой запрос:
    "SELECT 'introtext', 'fulltext' FROM #__content"
    Возвращает такую строку:
    "introtext fulltext"

    Есть еще мысли?
     
  6. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ты неправильные кавычки поставил. Нужны именно косые кавычки - те, которые на букве Ё при английской раскладке.
     
  7. VOZIS

    VOZIS Активный пользователь

    С нами с:
    11 апр 2012
    Сообщения:
    5
    Симпатии:
    0
    С `правильными` кавычками все заработало! Спасибо тебе, человек, огромное. ))) И, artoodetoo, то же естественно спасибо!
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а для значений как раз такие как ты ставил сначала... так что смотри =) не путай

    SELECT ... WHERE `name` = 'вася'
     
  9. VOZIS

    VOZIS Активный пользователь

    С нами с:
    11 апр 2012
    Сообщения:
    5
    Симпатии:
    0
    Ок, спс. )))
    PS. Иногда полезно бывает столкнуться с подобной ерундой.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    даже так
    `users`.`name` = 'Вася'

    и даже так
    SELECT `users`.*