PHP.SU

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

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

> Найдено сообщений: 11
hivuld Отправлено: 08 Февраля, 2019 - 03:38:35 • Тема: Как вам такой MySQL запрос? • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 78
Как вам такой MySQL запрос? Не будет ли она сильно нагружать БД? Как его можно оптимизировать?

CODE (sql):
скопировать код в буфер обмена
  1. SELECT D.id,sender_id,recipient_id,send_notifications, S.id AS sender_id, R.id AS recipient_id, R.name AS recipient_name, R.birthday AS recipient_birthday, R.STATUS AS recipient_status, R.sex AS recipient_sex, R.last_activity_at AS recipient_last_activity_at, BS.id AS im_blakcklist, BR.id AS youare_blakcklist, LM.id AS last_message
  2. FROM dialogs D
  3.     JOIN users S ON S.id=IF(93=sender_id, sender_id, recipient_id)
  4.     JOIN users R ON R.id=IF(93=recipient_id, sender_id, recipient_id)
  5.     LEFT JOIN blacklist BS ON BS.uid=S.id AND BS.who=R.id
  6.     LEFT JOIN blacklist BR ON BR.uid=R.id AND BR.who=S.id
  7. WHERE ((sender_id=93 AND recipient_id!=93) OR (sender_id!=93 AND recipient_id=93))
  8. ORDER BY id DESC LIMIT 0,16


Там где 93, будет передаваться ID текущего пользователя
hivuld Отправлено: 16 Января, 2019 - 11:50:20 • Тема: MySQL запрос c двумя таблицами? • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 66
Всем привет. Допустим, у меня есть таблица с users пользователями, в ней такие поля: id, login, password.
И также есть таблица blacklist, в ней есть такие поля: id, userID, objectID.

Как мне вытащить из таблицы users всех пользователей, у которых userID и objectID в таблице blacklist не равно id пользователя??

Сейчас у меня есть такой запрос:
CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT * FROM users ORDER BY id DESC LIMIT 0,12
hivuld Отправлено: 25 Сентября, 2018 - 13:22:39 • Тема: Как сделать замену по регулярному выражению? • Форум: Регулярные выражения

Ответов: 2
Просмотров: 395
Здравствуйте. Я пытаюсь сделать на php свой шаблонизатор, сейчас я делаю цыклы. Вот пример цикла:
PHP:
скопировать код в буфер обмена
  1.  
  2. [[ @times(5) ]]
  3.   <p>{{ $message }}</p>
  4. [[ @times(#end) ]]
  5.  



Код выше просто выводит {{ $message }} пять раз. И все хорошо, но если использовать вложенные циклы, например:

PHP:
скопировать код в буфер обмена
  1. [[ @times(5) ]]
  2.   [[ @times(2) ]]
  3.     <p>{{ $message }}</p>
  4.   [[ @times(#end) ]]
  5. [[ @times(#end) ]]



то результат будет таким:

PHP:
скопировать код в буфер обмена
  1. [[ @times(5) ]]
  2.     Hello world!
  3.     Hello world!
  4. [[ @times(#end) ]]



Как сделать чтобы внутренний цикл срабатывал нормально?

Я использую следующий код обработки таких конструкций:
PHP:
скопировать код в буфер обмена
  1.  
  2. public static function dirs($code, $data) {
  3.     $pattern = '/\[\[\s*@([^\(]+)\(([^\)]+)\)\s*\]\]([^\[]+)\[\[\s*@([^\(]+)\(#end\)\s*\]\]/i';
  4.     return preg_replace_callback($pattern, function($value) use($data) {
  5.       if($value[1] == 'times') return str_repeat($value[3], $value[2]); // $value[3] - строка <p>{{ $message }}</p>, $value[2] = 5;
  6.     }, $expression);
  7.   }
  8.  


Тут я просто ищу все конструкии такого вида [[ @times(n) ]] Some text... [[ @times(#end) ]], и вывожу их n раз
Как сделать чтобы внутренний цикл срабатывал нормально?

UPD: Переменная $message равна "Hello world!"
hivuld Отправлено: 02 Июля, 2018 - 10:10:11 • Тема: SELECT данных из mysql за определенный промежуток времени • Форум: Работа с СУБД

Ответов: 2
Просмотров: 599
Добрый день. Обращусь с просьбой за подсказкой. Буду очень признателен.

Я создаю интернет магазин. И у меня есть таблица products, в которой есть поля dateStart и dateEnd. dateStart - начало проведения акции, dateEnd - конец проведения акции.
Допустим пользователь на сайте выбирает за какой период он хочет увидеть акции, например 12.07.2018 - 14.07.2018.
Как сделать, чтобы из базы данных выберались акции за период, указанный пользователем?

P.S. В dateStart и в dateEnd хранится timestamp даты
hivuld Отправлено: 02 Января, 2018 - 07:30:39 • Тема: Как сверить 2 массивы и удалить одинаковые значения? • Форум: Хранение данных, их вывод и обработка

Ответов: 3
Просмотров: 978
Предположим есть массив есть массив
$a = [8, 16, 32]
и есть второй массив
$b = [1, 2, 4, 8, 16]

Как из массива b удалить те же жлементы из массива a
То есть должно получиться так:
$c = [1, 2, 4, 32]
hivuld Отправлено: 31 Декабря, 2017 - 08:14:49 • Тема: Объединение массивов • Форум: Хранение данных, их вывод и обработка

Ответов: 1
Просмотров: 489
Здравствуйте. Предположим, есть два массива:
PHP:
скопировать код в буфер обмена
  1. $arr1 = [1, 2, 4, 8, 16];
  2. $arr2 = [4, 8, 16, 32, 64];

А теперь вопрос. Как объединить эти два массива? Только чтобы в новом массиве одинаковых элементов не было. То есть должно получиться так:
PHP:
скопировать код в буфер обмена
  1. $arr3 = [1, 2, 4, 8, 16, 32, 64]

Как это сделать?
hivuld Отправлено: 26 Декабря, 2017 - 03:53:14 • Тема: Проблемы с созданием изображений с помощью PHP • Форум: Графика в PHP

Ответов: 10
Просмотров: 2704
Строитель пишет:
hivuld, а сейчас как по вашему выводится? О_о

<img src="/captcha/generate" /> - Как сделать, чтобы изоббражение выводилось?
hivuld Отправлено: 25 Декабря, 2017 - 17:36:32 • Тема: Проблемы с созданием изображений с помощью PHP • Форум: Графика в PHP

Ответов: 10
Просмотров: 2704
Строитель пишет:
hivuld пишет:
Когда я закоментировал эту строку header('Content-Type: image/gif');, то никаких ошибок не было...
Ну так этот заголовок сообщал браузеру о том, как надо обрабатывать этот документ (как картинку), и конечно же, если у вас в этом файле был ещё какой-то код, то скрипт справедливо генерировал ошибку. Попробуйте этот не много изменённый вариант :
Спойлер (Отобразить)

Все работает, а как теперь сделать, чтобы можно было вывести в <img>?
hivuld Отправлено: 24 Декабря, 2017 - 05:02:12 • Тема: Проблемы с созданием изображений с помощью PHP • Форум: Графика в PHP

Ответов: 10
Просмотров: 2704
Строитель пишет:
hivuld я же говорю, на локалке запускал этот код - проблем нет.

Когда я закоментировал эту строку header('Content-Type: image/gif');, то никаких ошибок не было...
hivuld Отправлено: 21 Декабря, 2017 - 02:54:26 • Тема: Проблемы с созданием изображений с помощью PHP • Форум: Графика в PHP

Ответов: 10
Просмотров: 2704
Строитель пишет:
hivuld, проверил на локалке, капча исправно генерируется. Скорее всего у вас нет файла со шрифтом "captcha.otf", или не правильно к нему указан путь.
Со шрифтом все нормально. Может проблема с загаловками?
hivuld Отправлено: 20 Декабря, 2017 - 14:01:13 • Тема: Проблемы с созданием изображений с помощью PHP • Форум: Графика в PHP

Ответов: 10
Просмотров: 2704
Доброго времени суток!

Вот в чем суть проблемы:
Пытаюсь создать каптчу на PHP, но не получается, браузер пишет "Изображение не может быть показано, так как содержит ошибки".
Помогите решить проблему. Код ниже:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function randomString($length) {
  3.         $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
  4.         $string = '';
  5.         for($i = 0; $i < $length; $i++)
  6.                 $string .= $chars[rand(0, strlen($chars) - 1)];
  7.         return $string;
  8. }
  9.  
  10. class CaptchaModule {
  11.         static function generate() {
  12.                 $random = randomString(5);
  13.                 $time = time();
  14.                 $_SESSION['CAPTCHA_TIME'] = $time;
  15.                 $_SESSION['CAPTCHA_STRING'] = self::genMd5($random, $time);
  16.                 self::createImage($random);
  17.                 exit;
  18.         }
  19.        
  20.         static function genMd5($captcha, $time) {
  21.                 return md5(md5(md5($captcha) . md5($time . md5($captcha))) . md5(md5(md5($time) . $captcha) . md5($captcha)));
  22.         }
  23.        
  24.         static function reset() {
  25.                 $_SESSION['CAPTCHA_TIME'] = [];
  26.                 $_SESSION['CAPTCHA_STRING'] = [];
  27.         }
  28.        
  29.         private static function createImage($captcha) {
  30.                 $img = imagecreatetruecolor(170, 50);
  31.                 imagefilledrectangle($img, 0, 0, 170, 50, imagecolorallocate($img, 255, 255, 255));
  32.                 imagettftext($img, 40, 0, 15, 23, imagecolorallocate($img, 82, 82, 82), 'captcha.otf', $captcha);
  33.                 header('Expires: Wed, 1 Jan 1997 00:00:00 GMT');
  34.                 header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  35.                 header('Cache-Control: no-store, no-cache, must-revalidate');
  36.                 header('Cache-Control: post-check=0, pre-check=0', false);
  37.                 header('Pragma: no-cache');
  38.                 header('Content-type: image/gif');
  39.                 imagegif($img);
  40.                 imagedestroy($img);
  41.         }
  42. }
  43.  
  44. CaptchaModule::generate();

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB