Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание ключевых слов со ссылками на поиск 
V
    Опции темы
KonstRuctor
Дата 28.2.2008, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 31.3.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: нет



В базе данных хранятся ключевые слова к каждой новости:
европа, азия, америка, азия, австралия, ямайка
Задача:
вывести в конце каждой новости ключевые слова, оформив их ссылками.
так, чтобы нажав на любое ключевое слово, далее что-то происходило.
Делаю так:
Код

        function draw_keywords( $keywords )
        {
        return
           implode(
              ',',
              array_filter(
                    array_unique(
                           explode(',', trim($keywords))
                    )
              )
           );
        }

Далее вынимаю из базы данных $keywords = $row["keywords"] и получаю слова через запятую.
То есть по сути эта функция в моем случае только выбирает уникальные ключевые слова и выводит их через запятую. Мне надо как-то к каждому ключевому слову добавить:
Код

<a href=\"search.php?keyword=".$keyword."\">".$keyword."</a>

Что-то туплю и ничего не выходит.
PM MAIL WWW ICQ   Вверх
skyboy
Дата 28.2.2008, 17:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



пройтись циклом по массиву, "оборачивая" каждый элемент массива в ссылку. зачем пытаться все сделать "в одну строку"?
PM MAIL   Вверх
Nigel
Дата 28.2.2008, 17:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



Угу, и зачем фильтер, если функции callback нету?
PM MAIL   Вверх
KonstRuctor
Дата 28.2.2008, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 31.3.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: нет



array_filter и верно, надо убрать.

У меня такая задумка:

1) Выбрать из базы 10 строк с новостями
2) Посторить цикл вывода новостей
Код

while ( $row = mysql_fetch_array($result) )
{
   // тут вывожу новость
   // и ключевые слова к новости
   // обернутые в ссылки
   $array = array_unique ( explode(',', trim($row["keywords"])) );
          foreach ( $array as $value )
          {
              echo "<a href=\"search.php?search=".$value."&sendsearch=start\">".$value."</a> &bull; ";
          }
}


Все получается, но как избавиться от &bull; в самом последнем слове?
Вопрос номер два: можно ли передавать по GET прямо так $value, или его лучше urlencode?

Это сообщение отредактировал(а) KonstRuctor - 28.2.2008, 18:13
PM MAIL WWW ICQ   Вверх
mishaSL
Дата 28.2.2008, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(KonstRuctor @  28.2.2008,  17:55 Найти цитируемый пост)
Вопрос номер два: можно ли передавать по GET прямо так $value, или его лучше urlencode?

Лучше urlencode.

Вот еще вариант:
Код

      function draw_keywords( $keywords )
        {
            $arr = array_unique(explode(',', $keywords));
            array_walk($arr, create_function('&$v,$key','$v = " <a href=\"search.php?keyword=".$v."\">".$v."</a>";'));

        return implode(',',$arr);
        }

$str = draw_keywords('кл.слово1,кл.слово1,кл.слово2');
print $str;



Цитата(KonstRuctor @  28.2.2008,  17:55 Найти цитируемый пост)
Все получается, но как избавиться от &bull; в самом последнем слове?

Так:
Код

while ( $row = mysql_fetch_array($result) )
{
   // тут вывожу новость
   // и ключевые слова к новости
   // обернутые в ссылки
   $array = array_unique ( explode(',', trim($row["keywords"])) );
          $str = '';
          foreach ( $array as $value )
          {
              $str .= "<a href=\"search.php?search=".$value."&sendsearch=start\">".$value."</a> &bull; ";
          }
          echo substr($str,0,-7);
}



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
KonstRuctor
Дата 28.2.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 31.3.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: нет



mishaSL, спасибо! Все работает идеально!
Всем остальным также благодарности за содействие!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.