PHP.SU

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

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

> Найдено сообщений: 12
tjomamokrenko Отправлено: 18 Ноября, 2014 - 15:55:26 • Тема: Проблемы при организации MVC • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 862
Как разрулить всё на одном подключении к БД?

Предположим, что мы обращаемся к Home->index(). Модель должна сделать какую-то выборку (SELECT * from `table`) и передать её в контроллер.

Проблема в том, что с подключением каждой модели я не могу придумать рациональный способ, когда используется уже существующее подключение к БД через mysqli.

Прикрепил пример своего видения вопроса
tjomamokrenko Отправлено: 17 Октября, 2014 - 15:11:34 • Тема: Помогите упростить алгоритм преобразования массива • Форум: Хранение данных, их вывод и обработка

Ответов: 1
Просмотров: 936
В результате выборки из базы данных получаю следующий массив:

Исходный массив (Отобразить)


Из него, впоследствии, нужно получить массив такого содержания:

Конечный массив (Отобразить)


Преобразование в следующем:

Из

CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) {
  2.   [0]=>
  3.   array(6) {
  4.     ["weekday"]=>
  5.     string(6) "День недели"
  6.     ["order"]=>
  7.     string(1) "Порядок пары"
  8.     ["subject"]=>
  9.     string(29) "Название предмета"
  10.     ["teacher"]=>
  11.     string(14) "Преподаватель"
  12.     ["classroom"]=>
  13.     string(2) "Номер кабинета"
  14.     ["homework"]=>
  15.     string(33) "Домашнее задание"
  16.   }


В

CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) {
  2.   ["День недели"]=>
  3.   array(1) {
  4.     ["Порядок пары"]=>
  5.     array(1) {
  6.       [0]=>
  7.       array(4) {
  8.         ["subject"]=>
  9.         string(29) "Название предмета"
  10.         ["teacher"]=>
  11.         string(14) "Преподаватель"
  12.         ["classroom"]=>
  13.         string(2) "Номер кабинета"
  14.         ["homework"]=>
  15.         string(33) "Домашнее задание"
  16.       }
  17.     }
  18.   }
  19. }


В настоящий момент преобразование происходит так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT DAYNAME(`schedule`.`date`) AS `weekday`, `schedule`.`order`, `subject`.`subject`, `subject`.`teacher`, `subject`.`classroom`, `homework`.`homework`
  2.        FROM `schedule`, `subject`, `homework`, `schedule_subject_homework`
  3.        WHERE WEEK(`schedule`.`date`, 1) = WEEK(CURDATE(), 1)
  4.        AND `schedule`.`schedule_id` = `schedule_subject_homework`.`schedule_id`
  5.        AND `subject`.`subject_id` = `schedule_subject_homework`.`subject_id`
  6.        AND `homework`.`homework_id` = `schedule_subject_homework`.`homework_id`
  7.        ORDER BY `schedule`.`order` ASC";
  8.  
  9. // Выборка
  10. $schedule = $mysqli->query($sql)->fetch_all(MYSQLI_ASSOC);
  11.  
  12. foreach ($schedule as $key => $class) {
  13.   $schedule[$class['weekday']][$class['order']][] = [
  14.     'subject' => $class['subject'],
  15.     'teacher' => $class['teacher'],
  16.     'classroom' => $class['classroom'],
  17.     'homework' => $class['homework']];
  18.  
  19.   // Убираем из массива числовые ключи нулевого уровня
  20.   if (is_int($key)) {
  21.     unset($schedule[$key]);
  22.   }
  23. }


Вопрос: мне кажется, это можно сделать намного легче. Возможно, даже с помощью SQL. Как упростить? Картинку с графическим представлением структуры БД прикрепляю
tjomamokrenko Отправлено: 12 Октября, 2014 - 17:41:34 • Тема: Обновление чата, используя JSON • Форум: JavaScript & VBScript

Ответов: 5
Просмотров: 1216
3d_killer пишет:
понимаешь не

Если честно – не понял

Проблема была в двух символах http://stackoverflow[dot]com/questio[dot][dot][dot]6326049#26326049
tjomamokrenko Отправлено: 12 Октября, 2014 - 17:19:15 • Тема: Обновление чата, используя JSON • Форум: JavaScript & VBScript

Ответов: 5
Просмотров: 1216
3d_killer пишет:
у тебя через этот интервал запустится один раз и все

setInterval() вызывает функцию/выполняет выражение пока не будет вызвана clearInterval()
http://www[dot]w3schools[dot]com/jsref/m[dot][dot][dot]_setinterval[dot]asp

P.S. Не хотелось бы использовать jQuery/AJAX.

Ума не приложу, почему не работает:
CODE (javascript):
скопировать код в буфер обмена
  1. function chatUpdate() {
  2.         var xmlhttp = new XMLHttpRequest();
  3.         var url = document.URL + '&action=update';
  4.  
  5.         xmlhttp.onreadystatechange = function() {
  6.                 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  7.                                 var myArr = JSON.parse(xmlhttp.responseText);
  8.                                 alert(myArr);
  9.                 }
  10.         }
  11.        
  12.         xmlhttp.open("GET", url, true);
  13.         xmlhttp.send();
  14. }
  15.  
  16. setInterval(chatUpdate(), 1000);
tjomamokrenko Отправлено: 12 Октября, 2014 - 16:25:50 • Тема: Обновление чата, используя JSON • Форум: JavaScript & VBScript

Ответов: 5
Просмотров: 1216
CODE (javascript):
скопировать код в буфер обмена
  1.                 function chatUpdate() {
  2.                         var xmlhttp = new XMLHttpRequest();
  3.                         var url = document.URL + '&action=update';
  4.  
  5.                         xmlhttp.onreadystatechange = function() {
  6.                                 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  7.                                                 var myArr = JSON.parse(xmlhttp.responseText);
  8.                                                 alert(myArr);
  9.                                 }
  10.                         }
  11.                        
  12.                         xmlhttp.open("GET", url, true);
  13.                         xmlhttp.send();
  14.                 }
  15.  
  16.                 setInterval(chatUpdate(), 1000);


Alert возвращает всё верно, но только 1 раз. Проблема в методе onreadystatechange и/или в свойстве readyState. Т.е. они не обновляются после первого запроса. Как только ни пытался – не могу реорганизовать этот код так, чтобы эти состояния обновлялись. Помогите Плач
tjomamokrenko Отправлено: 07 Октября, 2014 - 00:02:24 • Тема: Организовать обновление чата • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 1574
Спасибо, направление понял Здорово
tjomamokrenko Отправлено: 06 Октября, 2014 - 23:57:02 • Тема: mongodb.so • Форум: PEAR и PECL

Ответов: 1
Просмотров: 2605
http://php.net/manual/en/book.mongo.php
(Добавление)
Упс. Дата. Ниндзя
tjomamokrenko Отправлено: 06 Октября, 2014 - 23:53:55 • Тема: Организовать обновление чата • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 1574
RickMan пишет:
Вы в курсе, что это не три разных языка?

Да, я в курсе, что это не 3 разных языка. Поэтому я выделил слово "чистый".
С JSON понятно. Теперь волнует, чем его рациональнее в моей задаче обработать на клиенте: чистый JS/jQuery/AJAX
tjomamokrenko Отправлено: 06 Октября, 2014 - 23:41:36 • Тема: Организовать обновление чата • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 1574
dcc0 пишет:
на JS

Об этом я, можно сказать, догадывался. Посоветуете чистый JS/jQuery/AJAX?
tjomamokrenko Отправлено: 06 Октября, 2014 - 22:15:56 • Тема: Оплата на Webmoney • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 86
Можно добавить элементов к форме, ссылаться на свой скрипт, обрабатывать нужное, потом передавать остальное нужное мерчанту через CURL
tjomamokrenko Отправлено: 06 Октября, 2014 - 22:10:17 • Тема: Организовать обновление чата • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 1574
Доброго времени суток.

Дайте направление, куда копать:

Есть чат. Переписка хранится в реляционной БД. Средствами PHP я достаю список сообщений, их атрибуты и другую информацию чата – например, есть ли у пользователя новые сообщения и т.п.

На настоящий момент чат является статическим. Т.е. страница загрузилась, переписка загрузилась, и всё. Как сделать так, чтобы при приходе нового сообщения переписка обновлялась без перезагрузки страницы? API? Как часто к нему обращаться? Помогите с мыслью

Заранее благодарю
tjomamokrenko Отправлено: 05 Октября, 2014 - 14:38:07 • Тема: Запрос на выборку сообщений в беседе чата • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 28
Есть пользователь. Он может участвовать в диалогах (1:1) и беседах (1:n).

Согласно первой нормальной форме было решено для каждого отдельного получателя/отправителя создавать отдельную запись в таблице addressees (англ. – получатели).

См. EER модель в приложении к теме. Допустим, Петя хочет отправить сообщение Васе и Диме. Их ID, соответственно, 1, 2 и 3.
Сначала добавляется запись в таблицу messages, содержащая текст сообщения и дату отправки. Затем в таблицу addressees добавляется 2 записи: каждая запись содержит message_id, полученный ранее, addressee_user_id (id получателя: 2 для первой записи – Вася и 3 для второй (порядок не принципиален) – Дима) и addresser_user_id (id отправителя в обоих записях будет 1 – Петя).

Вопрос: как в итоге вывести сообщения (получить список идентефикаторов), в которых участвует пользователь с определённым user_id, если id остальных участников беседы заданы в виде PHP массива?

У меня есть решение этой задачи, но оно, как мне кажется, нерациональное.
Помогите, очень надо. Буду признателен.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB