Joomla 1.5 вывод из базы данных во frontend

Тема в разделе "Программирование", создана пользователем Pulse, 22.06.2010.

  1. Offline

    Pulse Недавно здесь

    Регистрация:
    18.12.2007
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Добрый день.

    есть форма. она сохраняет данные в базу данных.
    необходимо на обычной странице во frontend вывести эти данные в таблицу в зависимости от состояния переменной в базе.

    Дано

    Данные в базе данных. Представлены 2 записи для примера:
    Код (CODE):
    1. --
    2. -- БД: `base_main01`
    3. --
    4. -- --------------------------------------------------------
    5.  
    6. --
    7. -- Структура таблицы `jos_subrecords`
    8. --
    9.  
    10. CREATE TABLE `jos_subrecords` (
    11.   `id` int(11) NOT NULL auto_increment,
    12.   `record` int(11) NOT NULL default '0',
    13.   `element` int(11) NOT NULL default '0',
    14.   `title` varchar(50) NOT NULL default '',
    15.   `name` varchar(30) NOT NULL default '',
    16.   `value` text,
    17.   PRIMARY KEY  (`id`)
    18. ) ENGINE=MyISAM AUTO_INCREMENT=86 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=86 ;
    19.  
    20. --
    21. -- Дамп данных таблицы `jos_subrecords`
    22. --
    23.  
    24. INSERT INTO `jos_subrecords` VALUES (54, 7, 439, 'Выбрать тип товара', 'choose', 'Товар1 (Tovar1)');
    25. INSERT INTO `jos_subrecords` VALUES (55, 7, 442, 'Размер', 'size', '00');
    26. INSERT INTO `jos_subrecords` VALUES (56, 7, 444, 'Качество', 'quality', 'Q3');
    27. INSERT INTO `jos_subrecords` VALUES (57, 7, 445, 'Количество', 'quantity', '12563');
    28. INSERT INTO `jos_subrecords` VALUES (58, 7, 454, 'Цена за шт.', 'price', '126');
    29. INSERT INTO `jos_subrecords` VALUES (59, 7, 453, 'Валюта', 'currency', 'USD');
    30. INSERT INTO `jos_subrecords` VALUES (60, 7, 450, 'Примечание', 'note', 'снова примечание');
    31. INSERT INTO `jos_subrecords` VALUES (61, 7, 476, 'Активность', 'activity_switch', '1');
    32.  
    33. INSERT INTO `jos_subrecords` VALUES (62, 8, 439, 'Выбрать тип товара', 'choose', 'Товар2 (Tovar2)');
    34. INSERT INTO `jos_subrecords` VALUES (63, 8, 442, 'Размер', 'size', '30');
    35. INSERT INTO `jos_subrecords` VALUES (64, 8, 444, 'Качество', 'quality', 'Q1');
    36. INSERT INTO `jos_subrecords` VALUES (65, 8, 445, 'Количество', 'quantity', '2356');
    37. INSERT INTO `jos_subrecords` VALUES (66, 8, 454, 'Цена за шт.', 'price',  '125');
    38. INSERT INTO `jos_subrecords` VALUES (67, 8, 453, 'Валюта', 'currency', 'USD');
    39. INSERT INTO `jos_subrecords` VALUES (68, 8, 450, 'Примечание', 'note', 'примечание');
    40. INSERT INTO `jos_subrecords` VALUES (69, 8, 476, 'Активность', 'activity_switch', '0');


    необходимо, чтобы данные из таблицы `jos_subrecords` с идентификаторами от `element`выводились каждые в свою ячейку таблицы, создавая тем самым список в таблице.

    Код (html):
    1. <table width="100%" border="1" cellspacing="0" cellpadding="5">
    2.   <tr>
    3.     <td>ID</td>
    4.     <td>Товар</td>
    5.     <td>Размер</td>
    6.     <td>Качество</td>
    7.     <td>Количество</td>
    8.     <td>Цена за шт.</td>
    9.     <td>Валюта</td>
    10.     <td>Примечание</td>
    11.   </tr>
    12.   <tr class="класс от css-стиля">
    13.     <td>value из jos_subrecords.record</td>
    14.     <td>value из jos_subrecords.element.439 </td>
    15.     <td>value из jos_subrecords.element.442</td>
    16.     <td>value из jos_subrecords.element.444</td>
    17.     <td>value из jos_subrecords.element.445</td>
    18.     <td>value из jos_subrecords.element.454</td>
    19.     <td>value из jos_subrecords.element.453</td>
    20.     <td>value из jos_subrecords.element.450</td>
    21.   </tr>
    22. </table>



    причем, чтобы при jos_subrecords.element.476.value=1, у строки таблицы был свой стиль (class1):

    Код (html):
    1. <tr class="class1">
    2.     <td>value из jos_subrecords.record</td>
    3.     <td>value из jos_subrecords.element.439 </td>
    4.     <td>value из jos_subrecords.element.442</td>
    5.     <td>value из jos_subrecords.element.444</td>
    6.     <td>value из jos_subrecords.element.445</td>
    7.     <td>value из jos_subrecords.element.454</td>
    8.     <td>value из jos_subrecords.element.453</td>
    9.     <td>value из jos_subrecords.element.450</td>


    а при jos_subrecords.element.476.value=0, у строки таблицы был другой стиль (class2):

    Код (html):
    1. <tr class="class2">
    2.     <td>value из jos_subrecords.record</td>
    3.     <td>value из jos_subrecords.element.439 </td>
    4.     <td>value из jos_subrecords.element.442</td>
    5.     <td>value из jos_subrecords.element.444</td>
    6.     <td>value из jos_subrecords.element.445</td>
    7.     <td>value из jos_subrecords.element.454</td>
    8.     <td>value из jos_subrecords.element.453</td>
    9.     <td>value из jos_subrecords.element.450</td>
    10.   </tr>


    прощу прощения за синтаксис, но объяснил как смог. (

    помогите плиз. совсем голову сломал.
    заранее спсб.
     
    Последнее редактирование: 23.06.2010
  2.  
  3. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    value from jos_subrecords.element.439 - это как ? что то я не совсем понимаю принцип работы вашей системы.
     
  4. Offline

    Pulse Недавно здесь

    Регистрация:
    18.12.2007
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    ну это я так описал. я не знаю синтаксиса.

    короче говоря.

    value from jos_subrecords.element.439 значит что в ячейке таблицы должно быть выведено значение "Товар1 (Tovar1)"

    т.е код такой для записи с record=7 таблицы jos_records будет такой:
    Код (html):
    1. <table width="100%" border="1" cellspacing="0" cellpadding="5">
    2.   <tr>
    3.     <td>ID</td>
    4.     <td>Товар</td>
    5.     <td>Размер</td>
    6.     <td>Качество</td>
    7.     <td>Количество</td>
    8.     <td>Цена за шт.</td>
    9.     <td>Валюта</td>
    10.     <td>Примечание</td>
    11.   </tr>
    12.   <tr class="класс от css-стиля">
    13.     <td>7</td>
    14.     <td>Товар1 (Tovar1)</td>
    15.     <td>00</td>
    16.     <td>Q3</td>
    17.     <td>12563</td>
    18.     <td>126</td>
    19.     <td>USD</td>
    20.     <td>снова примечание</td>
    21.   </tr>
    22. </table>


    поправил задание. убрал лишнюю таблицу бд
     
    Последнее редактирование: 23.06.2010
  5. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Код (PHP):
    1. <?php
    2. $id = JRequest::getInt('subrecords',55,'POST');
    3. $db = &JFactory::getDBO();
    4. $query = 'SELECT * FROM #__subrecords WHERE `id` = '.$id;
    5. $db->setQuery($query);
    6. $rows = $db->loadObject();
    7. ?>
    8. <form action="" method="post" name="subrecords">
    9.  <tr>
    10.  <td>
    11. Введите ID
    12. </td>
    13.  <td>
    14. <input id="id_input" type="text" name="subrecords" size="18" />
    15. </td>
    16. <td>
    17. <input type="submit" name="Submit" class="button" value="Отправить" />
    18. </td>
    19. <tr>
    20. </form>
    21. <table width="80%" border="1" cellspacing="0" cellpadding="5">
    22.   <tr>
    23.    <?php if (count ($rows)){?>
    24.     <td>ID</td>
    25.     <td>Товар</td>
    26.     <td>Размер</td>
    27.     <td>Качество</td>
    28.     <td>Количество</td>
    29.     <td>Цена за шт.</td>
    30.   </tr>
    31.   <tr class="">
    32.     <td><?php echo $rows->id;?></td>
    33.     <td><?php echo $rows->record;?></td>
    34.     <td><?php echo $rows->element;?></td>
    35.     <td><?php echo $rows->title;?></td>
    36.     <td><?php echo $rows->name;?></td>
    37.     <td><?php echo $rows->value;?></td>
    38.     <?php }else{echo '<td>А нету</td>';}?>
    39.   </tr>
    40. </table>

    Внимание. Валидации вводимых значений нет
     
    Последнее редактирование: 23.06.2010
  6. Offline

    Pulse Недавно здесь

    Регистрация:
    18.12.2007
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    спсб., но ... вы мне написали код ввода данных. а мне нужно вывод уже имеющих данных из базы во frontend
     
  7. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    это и есть вывод данных из бд.
     
  8. Offline

    Pulse Недавно здесь

    Регистрация:
    18.12.2007
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    эммм мне нужно чтобы это автоматом делалось... а не по нажатию кнопки Отправить.

    типо заходишь на страничку и рисуется автоматом html-таблица с данными из базы.

    ок разьясню принцип работы.

    есть таблица в базе jos_subrecords
    в ней хранятся данные о товаре.
    у каждого товара есть идентификатор - record
    и его характеристики, которые хранятся в полях с номерами, указанные в element.
    т.е если значение element=439, то эта характеристика товара имеет текстовое значение, обозначающее тип товара
    если element=442, то эта характеристика товара имеет текстовое значение, обозначающее Размер
    и т.д. всего товар имеет 7 текстовых характеристик.

    есть еще у товара поле element=442. это идентификатор активности товара.
    он принимает два значения - 0 или 1.
    он служит для условия вывода стила для ряда html-таблицы. т.е если 1 (товар активен) - выводится обычная таблица, если 0 (товар неактивен) - выводится такая же таблица, но с другим стилем у ряда (к примеру перечеркнут текст).

    надеюсь я понятно объяснил. сорри, но я не программер (
     
    Последнее редактирование: 23.06.2010
  9. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Гм. Ну предполагается что пишущий расширение немного знаком с PHP, составлением SQL запросов к БД и выводом таблицы с помощью цикла foreach например. В примере дается применение API Joomla для решения этих вопросов. Писать готовое решение по ТЗ влом. Для вывода всей таблицы уберите форму, уберите условие WHERE из запроса получите всю таблицу $rows = $db->loadObjectList(); и выведите в цикле на страницу, проверяя значение поля element и в зависимости от этой проверки устанавливая стили.
     
  10. Offline

    Pulse Недавно здесь

    Регистрация:
    18.12.2007
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    вот код. помогите плиз адаптировать под joomla 1.5
    Код (PHP):
    1. cам разобрался


    заранее спсб
     
    Последнее редактирование: 25.06.2010
  11. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    вы вообще обладаете навыками программирования ? на ПХП ?
     
  12. Offline

    Pulse Недавно здесь

    Регистрация:
    18.12.2007
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    читаю и перевожу со словарем, программировать не умею
    код рабочий - проверено,
    можно его вставить в какой ть модуль, позволяющий напрямую php исполнять, но не хочется прыгать чз api джумлы и сделать под ней
     

Поделиться этой страницей

Загрузка...