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 :: Обработка данных из Mysql в Php

 PHP.SU

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


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

> Описание: Не могу разобраться...
LCarlo
Отправлено: 26 Октября, 2011 - 12:27:34
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Окт. 2011  


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




Здравствуйте ! Я столкнулся с проблемой небольшой проблемой и ,если Вас не затруднит, могли бы Вы объяснить мне кое-что:
Есть таблица `news`, в ней есть следующие: `id`, `autor`, `text`, `date`, `access` . Поле id - auto_increment, все остальные - text, но в поле `access` должна быть информация о том, кто (по никам) может видеть данную статью.
Вот сам вывод у меня получился так:
$db = "test";
$query = mysql_query("SELECT access FROM users where id = 1",$db);
$result = mysql_fetch_array($query);
$group = $result['access'];
echo $group;
Мне, к примеру, выводит следующие данные (а в бд, в поле `access` прописаны ники:'nick1', 'nick2') :
'nick1', 'nick2' . Если делать через массив, то, как бы я не вводил nick1,nick2 или 'nick1', 'nick2' - все-равно это выводится как один идентификатор - 0.
Можно ли как-то по-другому организовать (не через массив или же через массив, но по-другому), а то я так и,к сожалению, не смог справится...

Главное, что суть такова:
`news` = `id` `autor` `text` `date` `access`
И что к каждой новости, нужно прописывать: кто к ней будет иметь доступ, а главное это все средствами php сделать. Когда доступ есть только у одного - там все просто:
$nick = "nick1";
if($group == $nick) {
Вывод новости
}else{
Новость недоступна
} .
А вот когда несколько пользователей - это уже для меня "сверхфантастика" ...
Можете помочь Огорчение ?...
 
 Top
salim
Отправлено: 26 Октября, 2011 - 12:34:00
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Окт. 2011  


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




Пихаем в поле access такие данные:
'Коля|Вася|Петя'
При просмотре новости получает строку и делаем то-то типа
PHP:
скопировать код в буфер обмена
  1.  
  2. if (!preg_match("/$user_name/i", $access ))
  3. {
  4. echo "ERROR";
  5. }
  6. else
  7. {
  8. echo "текст новости";
  9. }

(Отредактировано автором: 26 Октября, 2011 - 12:34:22)

 
 Top
LCarlo
Отправлено: 26 Октября, 2011 - 12:39:14
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Окт. 2011  


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




А как сделать так, чтобы при вводе Вася, Петя, Коля в базу они записывались, как
Вася|Коля|Петя, то есть "," в базу вносилась "|" и чтобы в поле вводилось : Вася, Петя, Коля, а в БД отправлялось, как 'Вася|Петя|Коля' ?

(Отредактировано автором: 26 Октября, 2011 - 12:41:33)

 
 Top
Zuldek
Отправлено: 26 Октября, 2011 - 12:45:10
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


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




LCarlo пишет:
А как сделать так, чтобы при вводе Вася, Петя, Коля в базу они записывались, как
Вася|Коля|Петя, то есть "," в базу вносилась "|" и чтобы в поле вводилось : Вася, Петя, Коля, а в БД отправлялось, как 'Вася|Петя|Коля' ?


CODE (htmlphp):
скопировать код в буфер обмена
  1. $value_for_bd = "|".$_POST['name']."|";
 
 Top
LCarlo
Отправлено: 26 Октября, 2011 - 12:51:45
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Окт. 2011  


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




salim, Zuldek Спасибо Вам огромное ! Радость
(Добавление)
Zuldek, столкнулся с небольшой проблемой:
в начале и в конце:

не должно быть "|" . То есть $user_name должна быть: nick1|nick2|nick3|nick4, а так (по Вашему коду) выйдет |nick1|nick2|nick3|nick4| и тогда для любого значение условие будет выполняться.
Как сделать так, чтобы в таблицу вносились nick1|nick2|nick3|nick4, а в поле вводилось
nick1,nick2,nick3,nick4 ? Извините, если я что-то "намудрил", то Вашим способом не работает...
 
 Top
salim
Отправлено: 26 Октября, 2011 - 13:48:55
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Окт. 2011  


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




Zuldek немного не верно
PHP:
скопировать код в буфер обмена
  1. $users = $_POST['user_name'] .'|';


LCarlo, а если Вам надо в UI вывести Коля, Вася, Петя, то делаем

(Отредактировано автором: 26 Октября, 2011 - 13:49:25)

 
 Top
LCarlo
Отправлено: 26 Октября, 2011 - 14:06:40
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Окт. 2011  


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




salim, большое спасибо за Ваше внимание Радость .
Все получилось вот так(суть практически та, что и в Вашем коде):
$a1 = "Коля, Вася, Петя";
$a2 = str_replace(" ","", $a1); //Удаляю пробелы
$a3 = str_replace(',' ,'|', $a2); //Замена , на |
echo $a3;

Только я немного не понял: скобки " " и ' ' обрабатываются по-разному, когда я $a2 записал вот так: $a2 = str_replace(' ','', $a1); , то ничего не произошло, значит "" обрабатывают пробелы, а '' нет ?
Будьте добры, если можете, объясните разницу и возможности скобок ('' и "") .
 
 Top
salim
Отправлено: 26 Октября, 2011 - 18:15:00
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Окт. 2011  


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




Когда интерпретатор видит двойные кавычки, то он (интерпретатор) ждет переменную, в следствии чего скорость генерации скрипта медленнее (вы этого не заметите)...
а когда одинарные кавычки, то интерпретатор ожидает simple string - простую строку.

Что из них использовать - решать Вам

В любом случае код ДОЛЖЕН работать и в Вашем первом и втором случае, я удевлен что 1-й вариант у Вас не срабатывает

(Отредактировано автором: 26 Октября, 2011 - 18:17:29)

 
 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