[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ЧЕМ ЗАМЕНИТЬ foreach ??
Виталий
Доброго всем дня. Я нуждаюсь в помощи.
Есть такой код:


<?php foreach($this->categories as $category):
$query = 'SELECT image FROM #__categories WHERE id='.$category->id;
$db->setQuery($query);
$image = $db->loadResult();?>
<img src="<?php echo JURI::base();?>images/stories/<?php echo $image; ?>" />
<?php endforeach; ?>

В результате выводятся все рисунки записанные в массив категорий.
КАК СДЕЛАТЬ ЧТОБЫ ВЫВОДИЛСЯ ВСЕГО ОДИН РИСУНОК, НО ПРИНАДЛЕЖАЩИЙ ТОЙ КАТЕГОРИИ В КОТОРОЙ НАХОДИШСЯ В ДАННЫЙ МОМЕНТ???



Спустя 9 минут, 3 секунды (11.08.2010 - 08:53) linker написал(а):
Не хватает данных, но запрос такой
$query = 'SELECT image FROM #__categories WHERE id='.$curcategory->id . ' LIMIT 1';
Где-то надо получить видимо не массив категорий, а только одну текущую. Либо прежде найти текущую в массиве.

Спустя 16 минут, 29 секунд (11.08.2010 - 09:10) Guest написал(а):
Каких именно данных не хватает?

Вставил строку, но ничего не изменилось.. попрежнему выводит все изображения массива

Спустя 1 минута, 37 секунд (11.08.2010 - 09:11) linker написал(а):
Не хватает, как ты узнаешь текущую категорию и как/где заполняется массив.

Спустя 6 минут, 39 секунд (11.08.2010 - 09:18) Виталий написал(а):
Получается так: в системе управления сайтом я создаю категории и присваиваю им изображение. А в файле default.php прописан этот код для вывода изображений и названий категорий. Далее: в каждой категории есть материал. Я скопировал код из файла default.php в файл который выводит материал категории. В итоге в материале теперь выводятся все изобрежения категорий.

Спустя 19 минут, 29 секунд (11.08.2010 - 09:37) linker написал(а):
А мне еще интересно, $this->categories - это массив? И, $this->categories[0]->image, а так нельзя? Если это объект, у него есть поле id, может у него есть и поле image? Материал имеет ссылку на категорию?
Просто пример
$current_cat = isset($_GET['cat'])?(integer)$_GET['cat']:1;
$sql = "select image from categories where id = " . $current_cat;

Спустя 13 минут, 34 секунды (11.08.2010 - 09:51) Виталий написал(а):
Сам язык php я не знаю. Так что тут у меня методом тыка.
$this->categories - да это массив
$this->categories[0]->image - попробовал. выводит только картинку принадлежащую категории [0]
Цитата
Материал имеет ссылку на категорию?

получается что в материал попадаешь через кетегорию

Спустя 1 час, 43 минуты, 5 секунд (11.08.2010 - 11:34) linker написал(а):
Ну как то ты знаешь в скрипте какая текущая категория?

Спустя 21 час, 22 минуты, 59 секунд (12.08.2010 - 08:57) Виталий написал(а):
Не понял вопроса.

Спустя 7 минут, 58 секунд (12.08.2010 - 09:05) linker написал(а):
Цитата
НО ПРИНАДЛЕЖАЩИЙ ТОЙ КАТЕГОРИИ В КОТОРОЙ НАХОДИШСЯ В ДАННЫЙ МОМЕНТ
Как ты значешь, в какой категории находишься? Передается через GET/POST каким-то параметром? Или я просто не понимаю, что ты имеешь ввиду.

Спустя 1 минута, 3 секунды (12.08.2010 - 09:06) Виталий написал(а):
Вот что ещё интересно:

<?php foreach($this->categories as $category):
$query = 'SELECT image FROM #__categories WHERE id='.$category->id;
$db->setQuery($query);
$image = $db->loadResult();
?><?php echo $category->id; ?>
<img src="<?php echo JURI::base();?>images/stories/<?php echo $image; ?>" />
<?php endforeach; ?>


В этом коде строка
<?php echo $category->id; ?>
выводит номера категорий (в моём случае это 7 и 8). Но если я уберу
foreach($this->categories as $category)
, то строка
<?php echo $category->id; ?>
уже ничего не выводит...

Спустя 1 минута, 1 секунда (12.08.2010 - 09:07) Виталий написал(а):
Цитата
Как ты значешь, в какой категории находишься?


Я это знаю по ссылкам из сайта.

Спустя 10 минут, 39 секунд (12.08.2010 - 09:18) Виталий написал(а):
Всё, спасибо за помощь. Всё сделал сам ))) теперь как надо работает ))

Спустя 2 минуты, 56 секунд (12.08.2010 - 09:21) linker написал(а):
Виталий
Ну ок, замечательно.
Быстрый ответ:

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