Забыли пароль?
Запросите новый здесь.

Автор темы: Pisatel
ID темы: 1503
Информация:
Тема содержит 5 сообщения, была просмотрена 1843 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » PHP
 Распечатать тему
Закрепить новость через checkbox
Pisatel
Всем доброго времени суток! Нужна ваша помощь, мастера. Суть в следующем: делаю сайт (не фьюжн!), реализовал вывод актуальной новости на главную. То есть, когда добавляешь или редактируешь новость, через checkbox ставишь галку, отображать на главной или нет. Галку поставил- в столбец news_perv в бд пошла запись 1, если не поставил- 0. Далее- вывод. Мне нужна только одна новость на главной, в общем, вопрос вот в чем: чтобы при записи или редактировании новости если checkbox данной новости равен 1, то эта запись прошла, а у всех остальных новостей запись обновилась на ноль. Как будет выглядеть подобный запрос? Если нужен код добавления и редактирования новости- скину.
 
Web
Serge Renard
Что-то похожее делал, попробую объяснить на пальцах.
Перед тем, как исполнять запрос, добавляющий или изменяющий текущую новость, делаем запрос, который выбирает все записи с news_perv =1 и меняет их на 0.
Т.е. как-то так примерно:
UPDATE [имя_таблицы] SET news_perv = 0 WHERE news_perv = 1
В Интернете кто-то неправ!
x1
 
Web
Pisatel
А если checkbox у новой или изменяемой новости будет равен 0? Тогда мы напрасно обнулим существующую единицу другой новости. Хотя можно через проверку if сделать... На всякий случай- вот код добавления новой новости:
Загрузить источник  GeSHi: PHP
  1. //добавление новости
  2.  
  3. if ($act=="dobnews")
  4.  
  5. {
  6.  
  7. if (empty($news_nazv) or empty($news_text)) {
  8.  
  9. echo "<div class=alert>Обязательно заполните все поля</div>";
  10.  
  11. }
  12.  
  13. else {
  14.  
  15. if (!empty($news_com)) {$news_com=1;} else {$news_com=0;}
  16.  
  17. $news_perv = globper('news_perv');
  18.  
  19.  
  20. if (!empty($news_perv)) {$news_perv=1;} else {$news_perv=0;}
  21.  
  22. $skybase= mysql_query ("INSERT INTO `skynews_news` (`news_nazv`,`news_text`,`news_pic`,`news_data`,`news_com`, `news_perv`)
  23.  
  24. VALUES ('{$news_nazv}','{$news_text}','{$filename}','{$vrem}','{$news_com}','{$news_perv}')",$db);
Добавлено за 0.034 секунд, используя GeSHi 1.0.8.10
 
Web
Serge Renard
Ну в этом случае да, можно просто проверять значение чекбокса, и если он не выставлен, тот запрос просто не выполнять.
Правда, наверное, придётся предусмотреть и такой вариант, если делается попытка отредактировать ту новость, что сейчас висит на главной, и убрать у неё чекбокс.
В Интернете кто-то неправ!
 
Web
Pisatel
Сейчас попробую этот вариант, отпишусь. Спасибо за помощь, Serge Renard!
Загрузить источник  GeSHi: PHP
  1. if ($news_perv == 1){
  2. $skybase = mysql_query("UPDATE `skynews_news` SET `news_perv` = '0' WHERE `news_perv` = '1'",$db);
  3. }
Добавлено за 0.030 секунд, используя GeSHi 1.0.8.10

Добавил это перед INSERT и UPDATE- вроде работает.:-) СПАСИБО!
Изменил(а) Pisatel, 06.05.2013 10:18
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,171)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)