[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вывести значение определенной ячейки.
boreus
С php знаком только по наслышке smile.gif
Сайт на Joomla 1.5. Поставил компонент, который выводит список статей(объектов) с описанием. Там, насколько я понял, в цикле перебираются id всех статей и выводятся их заголовки. Нужно к заголовку каждой статьи(объекта) в этом списке приписать цену объекта, взятую из таблицы.
Таблицу сделал примерно так:
HTML
<tr>
<td>Название объекта1</td>
<td title="95">480</td>
</tr>
<tr>
<td>Название объекта2</td>
<td title="94">300</td>
</tr>

где title="id этого объекта"
Как сделать так чтобы к заголовку объекта приписывалось значение ячейки с тайтлом равным текущему id статьи?

ЗЫ: В каком месте писать уже нашел. Вот:
PHP
// loop over all articles of the current category (itemStartIdx < articleIdx <itemEndIdx)
for ($i $this->itemStartIdx$i $this->itemEndIdx$i++)
{    
    
// check for a valid index
    
if (($i 0) || ($i sizeof($this->articles)))
        break;
        
    
/* check pagination limits. actually this could/should be filtere via SQL...hm... maybe one day... */ 
    
if (($this->numitemlimit 0) && // (-1 = no pagination) OR (0 = all items)
        
($num $this->numitemlimit)) 
        break;
        
    
$article = & $this->articles[$i];
?>
<?php
    
if ($this->currentCategory == $article->catid)
    {
        
?>
    <tr class="sectiontableentry<?php echo $k 1?>" >
        <?php if ($this->params->get('se_show_article_num')) : ?>
        <td class="setd_num">
            <?php echo $num?>
        </td>
        <?php endif; ?>

    <?php /*  article title data */ ?>
        <?php if ($this->params->get('se_show_article_title')==1) : ?>
        <td class="setd_title">
            <a href="<?php echo $article->link?>">
            <?php echo $article->title?></a>
            <?php    /* ВОТ СЮДА НУЖНО ВСТАВИТЬ ЗНАЧЕНИЕ ИЗ ЯЧЕЙКИ С ТАЙТЛОМ=ТЕКУЩЕМУ АЙДИ СТАТЬИ*/ 


Поиском не нашел. Плиз хелп.



Спустя 2 минуты, 38 секунд (8.02.2009 - 16:43) boreus написал(а):
Разделом ошибся. Хотел в "PHP для начинающих" зпостить.

Спустя 4 часа, 44 минуты, 24 секунды (8.02.2009 - 21:27) kirik написал(а):
boreus, а в какой переменной содержится цена?
Нужен код, где происходит заполнение массива $this->articles значениями из таблицы. Или покажи кусок когда с запросом на вытаскивание всех статей.

Спустя 4 часа, 15 минут, 33 секунды (9.02.2009 - 01:43) boreus написал(а):
Цитата
boreus, а в какой переменной содержится цена?

В том то и дело что цена не в переменной, а просто в таблице на отдельной страничке сайта.
Цитата
Нужен код, где происходит заполнение массива $this->articles значениями из таблицы. Или покажи кусок когда с запросом на вытаскивание всех статей.
blink.gif

Если правильно понял, то вот:
PHP
// Get some data from the model
        //$model             =& $this->getModel();
        $sectionList    = & $this->get( 'SectionList');
        $section        = & $this->get( 'Section');
        $categories        = & $this->get( 'Categories');
        $articles        = & $this->get( 'Articles');
- это кусок содержимого файла view.html.php этого компонента Джумлы.

Спустя 2 часа, 29 минут, 51 секунда (9.02.2009 - 04:12) kirik написал(а):
Цитата (boreus @ 8.02.2009 - 17:43)
Если правильно понял, то вот

Да, примерно оно.. Только тут не совсем видно, в какие переменные заносятся ячейки из таблицы.. Насколько я понял, этим $this->get( 'Articles'); мыполучаем массив, в котором содержаться информация о статьях.
Теперь нужно посмотреть функцию get() этого класса. Там делается запрос, и происходит наполнение массива.

Спустя 5 часов, 54 минуты, 3 секунды (9.02.2009 - 10:07) boreus написал(а):
Цитата
Теперь нужно посмотреть функцию get() этого класса.

С этим я уже затрудняюсь...Вот начало файла view.html.php, может оно чем то поможет:
PHP
jimport( 'joomla.application.component.view');

// Component Helper
require_once(JPATH_COMPONENT_SITE.DS.'helpers'.DS.'misc.php');
require_once(
JPATH_COMPONENT_SITE.DS.'helpers'.DS.'route.php');

/**
 * HTML View class for the HelloWorld Component
 *
 * @package        Joomla.Tutorials
 * @subpackage    Components
 */
class SectionExViewCategory extends JView
{
    function display($tpl = null)
    {
        if ($this->get( 'IdSection') == 0)
        {    // No section was selected for our menu item.. Show an error message and return.
            echo \"<b>\".JText::_(\"ALERT_SECTION_NOT_SELECTED\").\"</b>\";
            return;
        }
        
        
// Get page/component configuration
        global $mainframe;
        $params = &$mainframe->getParams();
        $uri     =& JFactory::getURI();
        
        
// Get some data from the model
        //$model             =& $this->getModel();
        $sectionList    = & $this->get( 'SectionList');
        $section        = & $this->get( 'Section');
        $categories        = & $this->get( 'Categories');
        $articles        = & $this->get( 'Articles');

Цитата
Только тут не совсем видно, в какие переменные заносятся ячейки из таблицы..

Но ведь таблица никак не связана с этим компонентом, который выводит список статей(объектов), это я хочу чтоб он дописывал к каждому заголовку статьи цену из этой таблички. То есть в принципе надо чтоб в этом цикле(из первого поста) происходило сравнение текущего id статьи со всеми тайтлами, по очереди, из этой моей таблички и выводилось содержмое ячейки с совпавшим тайтлом.
Может коряво объяснил, сорри

Спустя 43 минуты, 14 секунд (9.02.2009 - 10:50) kirik написал(а):
Цитата (boreus @ 8.02.2009 - 08:40)
Нужно к заголовку каждой статьи(объекта) в этом списке приписать цену объекта, взятую из таблицы.

Если я верно понял, то и заголовок и цена хранятся в одной таблице? Или все-таки цены лежат в отдельной?

Спустя 1 час, 49 минут, 34 секунды (9.02.2009 - 12:39) boreus написал(а):
Да, цены лежат в отдельной таблице, сделал для удобства их обновления(чтоб они все в одном месте были). А заголовки вытаскиваются(из базы, скорее всего) и выводятся этим компонентом, в который и нужно добавить эти строки по добавлению цены в соотвествии с айди статьи. То есть компонент и таблица никак между собой не связаны.

Спустя 10 часов, 49 минут, 28 секунд (9.02.2009 - 23:29) kirik написал(а):
Цитата (boreus @ 9.02.2009 - 04:39)
компонент и таблица никак между собой не связаны.

Может стоит их связать (сделать все в одной таблице)? Тогда можно будет обойтись без лишних запросов.

А таблицы компонента и там где цены находятся в разных БД?

Спустя 1 час, 24 минуты, 33 секунды (10.02.2009 - 00:53) boreus написал(а):
Я, к сожалению, не силен в этом, поэтому таблица - это просто хтмл. Понимаю, что это сильно замедлит загрузку страницы, но больше в голову ничего не приходит. Единственное за что я могу зацепиться - это айди статьи и место в коде вывода заголовков статей. Это безнадежно?

Спустя 20 минут, 51 секунда (10.02.2009 - 01:14) kirik написал(а):
boreus, на самом деле я имел ввиду таблицу не ХТМЛ, а таблицу в БД smile.gif
Можно посмотреть структуру таблицы со статьями и с ценами?

АА.. все понял smile.gif Давайте тогда сделаем так.

Ищим строчку
PHP
for ($i = $this->itemStartIdx; $i < $this->itemEndIdx; $i++)

и ДО нее вставляем -
PHP
$prices = array(
        'Название статьи 1' => 'Цена 1',
        'Название статьи 2' => 'Цена 3',
        );


Потом ваша строчка
Цитата (boreus @ 9.02.2009 - 16:53)
/* ВОТ СЮДА НУЖНО ВСТАВИТЬ ЗНАЧЕНИЕ ИЗ ЯЧЕЙКИ С ТАЙТЛОМ=ТЕКУЩЕМУ АЙДИ СТАТЬИ*/

Заменяется на
PHP
echo $prices[$article->title];


Теперь при выводе статьи у нас будут браться соответствующие значения из массива $prices. Тоесть 'Название статьи 1' => 'Цена 1',: Название статьи 1 - к статье с таким тайтлом будет приписываться такая Цена 1 цена.

Спустя 10 часов, 20 минут, 30 секунд (10.02.2009 - 11:35) boreus написал(а):
Ааааа! biggrin.gif
kirik, спасибо тебе огроменное! Все заработало как должно!
Единственное табличку я хотел сделать чтоб оператор мог в административной части обновлять сам эти цены, и при формировании списка статей они бы оттуда вытягивались, но это уже ладно, сам в код могу забивать.
Главное - заработало! Очень помог. Спасибо!

ЗЫ: Вот кстати, результат. Сайт еще не закончен.

Спустя 21 минута, 27 секунд (10.02.2009 - 11:56) sergeiss написал(а):
Цитата (boreus @ 10.02.2009 - 11:35)
Единственное табличку я хотел сделать чтоб оператор мог в административной части обновлять сам эти цены, и при формировании списка статей они бы оттуда вытягивались, но это уже ладно, сам в код могу забивать.

А кто мешает это сделать следующим этапом работы? smile.gif

Вынеси эти данные в отдельный (текстовый) файл, ежели неохота морочиться с БД. И загружай данные оттуда каждый раз, когда идет вызов скрипта.
И сделай административную часть, которая будет менять эти данные.

Спустя 42 минуты, 31 секунда (10.02.2009 - 12:39) boreus написал(а):
Так и сделаю! Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.