Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с условием

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: вывод группы если выбрана у юзера
VadiKO
Отправлено: 30 Июня, 2020 - 12:37:29
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Все привет!

Уже давно мучаюсь и все время откладываю, но хочется уже решить вопрос.

Есть небольшой блок новостей, в нем несколько групп, на данный момент:

- важные;
- личные;
- прочие.
...
в будущем могут добавиться еще.

Вывожу их вот таким образом в три колонки (столбика):
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo '<table cellspacing="0" cellpadding="0" align="left" width="800"><tr>';
  3.        
  4. $g_news = mysql_query("SELECT * FROM `news_group` WHERE `status` = '1'");
  5.                
  6. while($x = mysql_fetch_array($g_news))
  7. {
  8.  
  9. echo '<tr><td colspan="3" class="option" colspan="3" align="left" ><hr /><strong><h2><span> '.$x['title'].' </span></h2></strong><hr /></td></tr>';
  10.        
  11.      $news = mysql_query("SELECT * FROM `news` WHERE `group-title` = '{$x['title']}' and `status` = '1'");
  12.  
  13.         $i=1;          
  14.                
  15.         while($w = mysql_fetch_array($news))
  16.         {
  17.        
  18.         echo '<td><img src="img/'.$w['img'].'.png" width="44" height="33"> '.$w['title'].' </td>';
  19.             if(($i%3) == 0 ) echo '</tr><tr>';
  20.             $i++;
  21.                
  22.         }
  23.  
  24. }
  25.                
  26. echo '</table>';
  27.  


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

- important;
- personal;
- other.

И в эти поля вносятся значения - 0 если не надо отображать и значение - 1 если нужно отображать.

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

news_group = important или personal или other и если у группы значение = 1 то выводим, если у какой-то из групп important или personal или other значение = 0, то не выводим эту группу новостей.

Полагаю здесь нужен массив... в общем мозгов не хватает, кто может помогите с решением.

Спасибо.

(Отредактировано автором: 30 Июня, 2020 - 12:38:46)

 
 Top
andrewkard
Отправлено: 01 Июля, 2020 - 06:58:59
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




По сути, сущности пользователь чужды группы новостей, это не его параметр, грубо говоря, тогда выносим их в отдельную таблицу, например user_vs_gnews, с колонками id,user_id,group_id. Теперь, что бы понять, какие группы выводить, нужно сделать один запрос.
Далее в запросе подставите:
CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM `news` WHERE group_id IN ()


Цитата:
Внимание mysql_
Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL

Перепишите на MySQLi синтаксис похож, а лучше на PDO_MySQL

Ну и совет, всегда предпочитайте такую запись
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. //тут выбираем данные
  4.  
  5. ?>
  6. <html>
  7. <table>
  8. <?PHP foreach($data as $row){ ?>
  9. <tr>
  10. <td><?=$row['str']?></td>
  11. </tr>
  12. <?PHP } ?>
  13. </table>
  14. </html>
  15.  

(Отредактировано автором: 01 Июля, 2020 - 07:25:01)

 
 Top
VadiKO
Отправлено: 01 Июля, 2020 - 07:49:40
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB