PHP.SU

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

Страниц (6): [1] 2 3 4 5 6 »

> Найдено сообщений: 84
ВэйДлин Отправлено: 04 Января, 2015 - 17:01:28 • Тема: Использование preg_replace_callback в классе • Форум: Регулярные выражения

Ответов: 1
Просмотров: 251
Результат регулярного выражения надо передать на обработку довольно массивной функции, но вот код

Как-то не очень хочет работать. Даже так попробовал
PHP:
скопировать код в буфер обмена
  1. preg_replace_callback("/...../i", create_function('$arr', 'return $this->recast($arr);'), $data);


На этом идеи кончились. Что можно ещё придумать?
ВэйДлин Отправлено: 31 Октября, 2013 - 04:07:43 • Тема: Работа с классами • Форум: Вопросы новичков

Ответов: 4
Просмотров: 190
А подробнее?
ВэйДлин Отправлено: 29 Октября, 2013 - 04:26:06 • Тема: Работа с классами • Форум: Вопросы новичков

Ответов: 4
Просмотров: 190
Есть класс для работы с массивами
PHP:
скопировать код в буфер обмена
  1. class arr {
  2.   private static $array;
  3.  
  4.   public function __construct($array){
  5.     self::$array = $array;
  6.   }
  7.  
  8.   public static function get($name){
  9.         return self::$array[$name];
  10.   }
  11. }


Получение данных
PHP:
скопировать код в буфер обмена
  1. $_post = new arr($_POST);
  2. echo $_post->get('name');


А вот теперь главное, возможно ли сделать чтобы эта конструкция работала ещё и так
PHP:
скопировать код в буфер обмена
  1. $_post = new arr($_POST);
  2. echo $_post->get('name')->trim();

Должна возвращаться строка уже обработанная функцией trim
ВэйДлин Отправлено: 04 Октября, 2013 - 06:40:53 • Тема: Подчет количества новых новостей • Форум: Вопросы новичков

Ответов: 0
Просмотров: 53
Я хочу сделать группы (что-то типо пабликов вк), и когда юзер подписывается на такую группу у него должен обновляться счетчик сколько новых новостей добавлено

А теперь самое важное:
- Пользователь может, и будет активно удалять новости из своей ленты
- Новости которые он удалил, не должны выводиться в ленте
- При удалении счетчик новых новостей должен убывать

Вот не знаю, как это делать, можно при добавлении новости на паблике добавлять к счетчикам юзеров по единице, но когда на паблик подписано тысяч 200? Как-то не вдохновляет этот вариант.

И что делать с удаленными новостями? Можно записывать в таблицу id всех новостей которые юзер удалил, но сайт так устроен, что юзер почти всегда будет удалять новость прочитав её, получится просто огромная таблица

Есть у кого идеи?
ВэйДлин Отправлено: 10 Ноября, 2012 - 15:06:16 • Тема: Выборка по 2 таблицам • Форум: SQL и Архитектура БД

Ответов: 11
Просмотров: 66
Проблема в том что в двух таблицах совершенно разные столбцы, за исключением date
Из-за этого пишет ошибку
ВэйДлин Отправлено: 10 Ноября, 2012 - 02:47:44 • Тема: Выборка по 2 таблицам • Форум: SQL и Архитектура БД

Ответов: 11
Просмотров: 66
оо, спасибо, заработало.
Ещё такой вопрос, как влепить сюда UNION? Или как мне склеить таблицы вертикально? Нужно обрабатывать все по отдельности для вывода в ленте новостей
ВэйДлин Отправлено: 09 Ноября, 2012 - 23:24:36 • Тема: Выборка по 2 таблицам • Форум: SQL и Архитектура БД

Ответов: 11
Просмотров: 66
Вот полный запрос
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT q.*, d.*
  2. FROM `questions` AS q, `discussion` AS d
  3. WHERE q.TO = 1 OR d.TO = 1
  4. ORDER BY q.date, d.date
  5. GROUP BY date DESC
  6. LIMIT 12
ВэйДлин Отправлено: 09 Ноября, 2012 - 00:03:06 • Тема: Выборка по 2 таблицам • Форум: SQL и Архитектура БД

Ответов: 11
Просмотров: 66
Выдает ошибку
CODE (SQL):
скопировать код в буфер обмена
  1. You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'GROUP BY date LIMIT 0, 30' at line 5
ВэйДлин Отправлено: 04 Ноября, 2012 - 17:27:27 • Тема: Выборка по 2 таблицам • Форум: SQL и Архитектура БД

Ответов: 11
Просмотров: 66
Мне надо для ленты новостей юзера выбрать сразу несколько таблиц и сортировать их по общему полю date
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT t1.*, t2.*
  2.   FROM `table_1` AS t1, `table_2` AS t2
  3.   ORDER BY t1.date, t2.date DESC LIMIT 12

Но когда я делаю выборку результаты повторяются
Как этого избежать?
ВэйДлин Отправлено: 12 Сентября, 2012 - 14:12:28 • Тема: Как лучше построить таблицу? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1902
Стоит ли объединять эти 2 таблицы чтобы не делать 2 запроса к бд?
Учитывая то что 1 таблица обновляется не так часто как вторая (каждые 5сек)
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `user_count` (
  2.   `id` int(11) NOT NULL, -- id юзера
  3.   `new_messages` int(8) NOT NULL DEFAULT '0',
  4.   `quest_interim` int(8) NOT NULL DEFAULT '0',
  5.   `likes` int(11) NOT NULL DEFAULT '0',
  6.   `my_sub` int(11) NOT NULL DEFAULT '0',
  7.   `sub_to_me` int(11) NOT NULL DEFAULT '0',
  8.   PRIMARY KEY (`id`)
  9. ) ENGINE = MyISAM DEFAULT CHARSET=cp1251

CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `online` (
  2.   `id` int(11) NOT NULL, -- id юзера
  3.   `time` int(15) NOT NULL, -- Время последнего визита
  4.   PRIMARY KEY (`id`)
  5. ) ENGINE = MyISAM DEFAULT CHARSET=cp1251
ВэйДлин Отправлено: 12 Сентября, 2012 - 13:36:14 • Тема: Как лучше построить таблицу? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1902
Соединить 2 таблицы чтоб делать 1 запрос к БД вместо 2
ВэйДлин Отправлено: 12 Сентября, 2012 - 02:12:50 • Тема: Как лучше построить таблицу? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1902
У меня есть отдельная таблица с числами (кол-во новостей юзера, кол-во тем на форуме, кол-во лайков, кол-во подписок)
И у мня есть таблица с id юзера и временем его последнего посещения (time()) для статистики онлайн, как будет лучше с точки зрения оптимизации? Соединить эти таблицы?
Учитывая то что таблица online обновляется аяксом каждые 5сек
ВэйДлин Отправлено: 24 Августа, 2012 - 18:53:10 • Тема: Время в БД • Форум: Вопросы новичков

Ответов: 1
Просмотров: 78
Возникла проблема с сортировкой сообщений переписки по дате, и вывода этой даты.
Что делать? Записывать в 2 столбика разную дату для каждого? Или можно записывать time() а потом накидывать или убавлять часы на стороне сервера?
И кстати, как лучше записывать дату в БД, использовать time() или `datetime`?
ВэйДлин Отправлено: 18 Августа, 2012 - 07:46:05 • Тема: Условие при выборе • Форум: Работа с СУБД

Ответов: 2
Просмотров: 845
Я уже сам разобрался
CODE (SQL):
скопировать код в буфер обмена
  1. WHERE ((`from` = $mid AND `del_from` != 1) OR (`to` = $mid AND `del_to` != 1))
ВэйДлин Отправлено: 17 Августа, 2012 - 22:59:57 • Тема: Условие при выборе • Форум: Работа с СУБД

Ответов: 2
Просмотров: 845
Как сделать что бы при выборе из базы данных было подобное условие, покажу на примере PHP
Это реализация удаления сообщений, поверьте, по другому сделать нельзя

CODE (SQL):
скопировать код в буфер обмена
  1. # Если мы отправитель
  2. IF( `from` = my_id ){
  3.  
  4.   # Проверяем, не удалили ли мы сообщение
  5.   IF( `del_from` == 1 ){
  6.     НЕ ВЫВОДИТЬ ЭТУ ЗАПИСЬ
  7.   }
  8.  
  9. }ELSE{
  10.   # Сообщение отправили не мы
  11.  
  12.   IF( `del_to` == 1 ){ # Сообщение удалено
  13.     НЕ ВЫВОДИТЬ ЭТУ ЗАПИСЬ
  14.   }
  15.  
  16. }
  17.  

Страниц (6): [1] 2 3 4 5 6 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB