Запсиь в MySQL при клике на ссылку. Как?

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

  1. Offline

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

    Регистрация:
    28.11.2007
    Сообщения:
    23
    Симпатии:
    1
    Есть sobi2, CB и плагин CB-SOBI. В профиле пользователя отображается страничка со всеми его объявлениями. Есть там такое поле "Дата окончания публикации". Так вот, по умолчанию дата установлена "дата создания + 30 дней".
    Задача такова: нужно сделать кнопку "Обновить объявление", чтоб пользователь имел возможность продлевать дату публикации ещё на 30 дней.
    Почти со всем разобрался сам, остался один нерешенный вопрос - а как, собственно, сделать эту кнопку "Обновить"? Пробовал просто вставлять мой MySQL запрос в цикл, который выводит все данные о каждом объявлении. Работает, дата прекрасно обновляется как и было задумано. Но мне нужна именно кнопка, а не автоматическое обновление при заходе в профиль.
    Есть идеи?
     
  2.  
  3. GDie
    Offline

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

    Регистрация:
    02.01.2007
    Сообщения:
    184
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Запсиь в MySQL при клике на ссылку. Как?

    Идеи конечно есть :)
    Например вынести этот обновляющий код в отдельную функцию и вызывать отдельно, а не во всем цикле...
     
  4. chilly_bang
    Offline

    chilly_bang специалист

    Регистрация:
    30.04.2006
    Сообщения:
    1 545
    Симпатии:
    38
    Пол:
    Мужской
    Ответ: Запсиь в MySQL при клике на ссылку. Как?

    крутую вещъ делаете. поделитесь, как доделаете.
     
  5. Offline

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

    Регистрация:
    28.11.2007
    Сообщения:
    23
    Симпатии:
    1
    Ответ: Запсиь в MySQL при клике на ссылку. Как?

    А можно подробнее как это делается? Такая идея у меня тоже возникала, но я даже не представляю как это реализовать, т.к. с PHP почти не знаком, всё делаю методом научного тыка и c помощью логики.

    Вот кусок кода:
    Код (PHP):
    1. if(count($resutlts)) {
    2.                 foreach($resutlts as $resutlt) {
    3.                     $enddate = $resutlt->publish_down;
    4.                     $pf_time = strtotime($enddate);
    5.                     $pf_date = date("d-m-Y", $pf_time);
    6.                     $days = 3; // за сколько дней до истечения срока появляется возможность обновить дату
    7.                     $renewdays = 30; // сколько дней прибавлять к обновленной дате
    8.                     $renew = date( 'Y-m-d H:i:s', time() + (($renewdays) * 24 * 60 * 60) + ($mosConfig_offset * 60 * 60));
    9. ...
    10. if((strtotime($resutlt->publish_down) < (mktime() + ($days * 86400))) && (strtotime($resutlt->publish_down) > (943912801))) {
    11.                     $query = "UPDATE `#__sobi2_item` SET `publish_down` = '{$renew}' WHERE itemid= '{$resutlt->itemid}'";
    12.                     $database->setQuery( $query );
    13.                     $database->query();
    14.                     }
    15. ...
    16. }
    17. }


    Ещё пытался разобраться как работает стандартная кнопка Джумлы "Сохранить" в админке. Там ведь при клике происходит запись в БД введенных данных с формы. Но пока безрезультатно, слишком уж всё сложно и запутанно.
     
    Последнее редактирование: 11.01.2008
  6. Physicist
    Offline

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

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ответ: Запсиь в MySQL при клике на ссылку. Как?

    Самый простой способ: вынести это в отдельный скрипт, который после выполнения всех действий будет перенаправлять пользователя обратно на страницу профиля.
     
  7. Offline

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

    Регистрация:
    28.11.2007
    Сообщения:
    23
    Симпатии:
    1
    Ответ: Запсиь в MySQL при клике на ссылку. Как?

    Тогда получается куча дополнительных проблем:
    1. Т.к. это отдельный скрипт, вызвать его может кто угодно и откуда угодно. А значит нужна проверка прав доступа.
    2. Нужно передавать ID пользователя этому скрипту. Как это сделать я не знаю, т.к. не программист.
    3. Но всё равно таким способом получится сделать только одну кнопку для всех объявлений. А нужно каждому объявлению свою отдельную.
     
  8. Physicist
    Offline

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

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ответ: Запсиь в MySQL при клике на ссылку. Как?

    Естественно. Но это не такая большая проблема.

    ID пользователя хранится в сессии, поэтому передавать его не нужно.

    Если ссылка генерируется скриптом, то в нее можно включить ID объявления.
     

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

Загрузка...