PHP.SU

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

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

> Найдено сообщений: 13
Arcoslov Отправлено: 10 Октября, 2017 - 21:42:46 • Тема: Как организовать множественные связи? • Форум: Программирование на PHP

Ответов: 1
Просмотров: 458
Здравствуйте.

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

Нужно, чтобы когда пользователь входит на страницу конкретного слова, то ему подгружались страницы связанных слов.

Например, пользователь выбрал слово "идти". Нажал на него, перешёл на страницу, и ему должно подрузиться куча слов по шаблону - идти, прийти, пойти, уйти, подойти ...

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

Чё-то не пойму никак, как это организовать такую вещь. Растерялся
То есть, мне не понятно каким образом организовывать связь между каждым новым добавляемым словом и всеми имеющимися, с которыми оно должно быть связано.
Arcoslov Отправлено: 06 Ноября, 2015 - 11:17:47 • Тема: Помогите написать выборку • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 19
Здравствуйте.
Помогите, пожалуйста, написать запрос )

Дано:
table1: id, column1, number
table2: id, column1, column2

id - это id,
остальные данные не уникальные и могут повторяться сколько угодно раз.

Из таблицы table1 нужно ссумировать все значения table1.number, которые имеют table1.column1 такое, которое в table2.column1 равно заданному нами значению в table2.column2

Например:

table1:
id, column1, number
1, 1, 1
2, 2, 2
3, 4, 3
4, 3, 4

table2:
id, column1, column2
1, 1, 1
2, 2, 2
3, 2, 1
4, 3, 1
5, 1, 2

Мы задаём на вход table2.column2 = 1
этому числу соответствуют:
table2.column1 = 1 (строка 1)
table2.column1 = 2 (строка 3)
table2.column1 = 3 (строка 4)

в table1.column1 этим числам соответствуют строки 1, 2 и 4, суммируем значения number этих строк, получаем: 1+2+4=7.

Надеюсь, описал понятно Закатив глазки
(Добавление)
Подозреваю, что как-то так:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT SUM ( `number`) FROM `table1` WHERE `table1`.`column1` IN (SELECT `table2`.`column1` FROM `table2` WHERE `table2`.`column2` = 5)


Это оптимально?
Arcoslov Отправлено: 06 Ноября, 2015 - 10:57:16 • Тема: ошибка cannot delete or update a parent row: a foreign key constraint fails • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 227
Мелкий,

ok, спасибо, ошибку осознал.
Да, сделаю по классике жанра.
Arcoslov Отправлено: 05 Ноября, 2015 - 20:59:10 • Тема: ошибка cannot delete or update a parent row: a foreign key constraint fails • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 227
SAD пишет:
а как Вы пытаетесь, что - то идентифицировать, если родитель удален? вместо ид родителя будет null и все

идентифицировать можно руками\глазами и куда-то выгрузить.
Как это можно будет сделать, если я удалю больше одного родителя? Если будет null и всё, то это уже не удастся.
(Добавление)
Мелкий пишет:
https://dev[dot]mysql[dot]com/doc/refman[dot][dot][dot]oreign-keys[dot]html
Цитата:
NO ACTION: A keyword from standard SQL. In MySQL, equivalent to RESTRICT.


хм.. зачем тогда нужны две разные тычки?..
Arcoslov Отправлено: 05 Ноября, 2015 - 19:22:25 • Тема: ошибка cannot delete or update a parent row: a foreign key constraint fails • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 227
SAD пишет:
ON DELETE: set null может нужно?

Нет, зачем же мне set null. Если сделать set null, потом ничего нельзя будет идентифицировать.

MiksIr пишет:
В MySQL "no action" === "restrict"
В MySQL "no action" === "restrict" Странно, я вроде читал, что no action означает, что не нужно выполнять действия для дочерней таблицы, в случае действия над родительской; а restrict означает запретить действие над родительской таблицей, если в дочерней уже есть запись с таким fk.

Всё равно не работает Ниндзя
Arcoslov Отправлено: 03 Ноября, 2015 - 21:00:03 • Тема: ошибка cannot delete or update a parent row: a foreign key constraint fails • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 227
Здравствуйте.

Помогите, пожалуйста, разобраться, как работают связи в таблицах.

Имею две таблицы. Одна из таблиц имеет FK, он указывает на атрибут другой таблицы.
Хочу: чтобы при обновлении записи в родительской таблицы запись обновлялась в дочерней, а при удалении записи из родительской таблицы - с дочерней ничего не происходило.
делаю настройки FK в дочерней таблице: ON UPDATE: cascade, ON DELETE: no action.

Если в дочерней таблице есть записи, которые ссылаются на записи в родительской таблице, я пытаюсь удалить кортеж в родительской таблице, то происходит ошибка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`base`.`table2`, CONSTRAINT `table2_ibfk_2` FOREIGN KEY (`w_id`) REFERENCES `table1` (`id`) ON UPDATE CASCADE)
  2. The SQL being executed was: DELETE FROM `table1` WHERE `id`=9


Видимо, я чего-то не понимаю.

p.s. таблицы innodb.
Arcoslov Отправлено: 23 Марта, 2015 - 15:06:20 • Тема: Помогите найти скрипт видеочата • Форум: Вопросы новичков

Ответов: 3
Просмотров: 235
DeepVarvar пишет:
Wowza

Бесплатно? Не понял
Arcoslov Отправлено: 23 Марта, 2015 - 13:21:55 • Тема: Помогите найти скрипт видеочата • Форум: Вопросы новичков

Ответов: 3
Просмотров: 235
Здравствуйте.

Подскажите, кто знает, есть ли бесплатные решения для организации видеочата на сайте?
Интересует реализация видоконференций между двумя клиентами посредством сервера.
Чтобы два человека через сервис на сайте могли общаться по видео с голосом, текстом чатиться.

заранее спасибо.

Ну, или посоветуйте, как реализовать такое Подмигивание
Arcoslov Отправлено: 08 Марта, 2015 - 12:49:26 • Тема: проблема с кодировками и базой • Форум: Кодировки и все смежное

Ответов: 1
Просмотров: 1187
появилась дополнительная информация.

База уже получает данные в корявом виде.

Как работает код:
первом файле php есть форма.
Во втором - код для обращения и инсерта данных в базу.
Когда в первом файле нажимается кнопка сохранить, она через js методом post передаёт данные во второй файл, чтобы там произошла запись в базу. Если в этом второмфайле сделать print_r($_REQUEST) в самой первой строчке, то видно, что данные уже приходят корявые. Однако, в первом файле alert непосредственно перед отправкой данных эти самые данные выводит нормально.

Почему при передаче данных они корёжатся?
и, кстати, полученные во втором файле данные почему-то нельзяс iconv сконвертить в utf8 обратно, получаются неопознанные закорючки.
Arcoslov Отправлено: 05 Марта, 2015 - 18:52:41 • Тема: проблема с кодировками и базой • Форум: Кодировки и все смежное

Ответов: 1
Просмотров: 1187
Здравствуйте.

Помогите, пожалуйста, решить проблему с сайтом. Переношу сайт с хостинга на хостинг. База mysql.
В phpmyadmin вижу:
Server connection collation: utf8_general_ci
Collation базы: utf8_general_ci,; collation всех таблиц utf8_general_ci

Файл базы (.sql) у меня на компе - в формате utf8. Русский текст читабелен. Импортировал как utf8. Вся текущая инфа, которая достаётся из базы, выглядит по-русски.

Однако, вся новая инфа, которая через сайт добавляется в базу, в базе выглядит как г Москва, и в последствии на сайте она выглядит так же.

На данный момент у меня на сайте такая конструкция:

PHP:
скопировать код в буфер обмена
  1. $connection=new mysqli($host, $user, $pass, $db);
  2. if (!$connection->set_charset("utf8")) {
  3.     printf("Ошибка при загрузке набора символов utf8: %s\n", $connection->error);
  4. } else {
  5.     printf("Текущий набор символов: %s\n", $connection->character_set_name());
  6. }

она мне говорит, что "Текущий набор символов: utf8".

В коде сайт ничего не конвертит вроде бы.
От чего ж оно? )

p.s. сам сайт полностью в utf8, в htaccess прописано AddDefaultCharset utf-8, контент страниц сайта, что не из базы, отображается нормально.

p.p.s. декодер лебедева говорит, что это utf8 -> cp1252
Не понял

есть какой-то вариант для начала проверить, в каком виде поступают данные в базу? они такие туда уже постаупают или это база чё-то крутит?
Arcoslov Отправлено: 16 Декабря, 2014 - 21:53:28 • Тема: Отправка html письма с аттачами • Форум: Работа с сетью

Ответов: 7
Просмотров: 3855
Мелкий пишет:
Раз хотите разобраться - то читайте соответствующий RFC. По-моему, последняя версия это rfc2046: https://tools[dot]ietf[dot]org/html/rfc2046

угу. буду курить.

esterio пишет:
сделайте related

а зачем в моей гораздо более простой задаче related?
я даже не понимаю, что это он делает. я же никакие картинки не приаттачиваю, они только в виде ссылок в вёрстке.
Arcoslov Отправлено: 16 Декабря, 2014 - 19:01:13 • Тема: Отправка html письма с аттачами • Форум: Работа с сетью

Ответов: 7
Просмотров: 3855
esterio пишет:
сформируйте отправте письмо с помощю того thunderbird (или йому подобніх) и посмотрите исходник. проанализируйте и увидете что вы делаете не так


сделал из thunderbird. Понимание не пришло.
он делает по такой схеме:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. --mixed
  3.     --alternative
  4.     (text here)
  5.     --alternative
  6.         --related
  7.         (html here)
  8.         --related
  9.         (picture here)
  10.         --related
  11.         (picture here)
  12.         .....
  13.         --related--
  14.     --alternative--
  15. --mixed
  16. (attach here)
  17. --mixed--
  18.  


Единственное, что я понял - это что открывающие boundary тоже надо ставить (ибо они там стоят). Однако, это ничего не поменяло.
Я делаю вроде по той же схеме, как видите, но без related, пока моделирую простую ситуацию. Приходит так же пустое.

Мелкий пишет:
Arcoslov пишет:
контент одинаково корректно отображался во всех клиентах (в частности: через браузер, thunderbird, Outlook, the bat).
Рассылка содержит html с аттачами.

Вопрос как отправить или как сделать так, чтобы корректно отображался?
Вёрстка почтовых рассылок имеет огромное число граблей и особенностей.

я не про вёрстку. вёрстка есть, если её отправлять из thunderbird, она корректно отображается во всех браузерах и клиентах.


Мелкий пишет:
Не вижу никакого смысла писать очередную реализацию почтовых заголовков - возьмите phpmailer или ещё что-нибудь, пусть за заголовками следит давно написанный и отлаженный код.

Да я уж понял..
но я хочу разобраться, а не забить.
Arcoslov Отправлено: 15 Декабря, 2014 - 17:29:47 • Тема: Отправка html письма с аттачами • Форум: Работа с сетью

Ответов: 7
Просмотров: 3855
Всем привет!

Подскажите, пожалуйста, как правильно отправлять рассылку, чтобы контент одинаково корректно отображался во всех клиентах (в частности: через браузер, thunderbird, Outlook, the bat).
Рассылка содержит html с аттачами.

На сколько я понял, основная проблема в том, что нужно отправлять и html-версию как html, и html-версию как текст, иначе программы типа thunderbird ничего не поймут и не отобразят, т.к. им подавай html, отправленный как plain text (хотя в веб-морде гугла, например, всё будет работать).

Собственно, не пойму, как это реализовать. У меня приходит пустое письмо всё время, как только не пробовал.

мой код:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $eln = "\n"; //конец строки
  4.  
  5. $to = 'my_mail@gmail.com';
  6. $from = '=?utf-8?B?'.base64_encode('Вася пупкин').'?='.' <vasya@pup.kin>';
  7. $subject = '=?utf-8?B?'.base64_encode('сабжект письма').'?=';
  8. $replyto = 'vasya@pup.kin';
  9.  
  10. $headers = 'MIME-Version: 1.0;'.$eln;
  11. $headers .= 'From: '."$from".$eln;
  12. $headers .= 'Reply-To: '."$replyto".$eln;
  13. $headers .= 'Content-type: multipart/mixed; boundary="---mixed";'. $eln;
  14. //начало общей части
  15. $message='';
  16.                 // начало части с альтернативными вариантами
  17.                 $message.='Content-Type: multipart/alternative; boundary="---alternative"'. $eln;
  18.  
  19.                                 //начало первого альтернативного блока (текстовый контент)
  20.                                 $message.='Content-Type: text/plain; charset="UTF-8"; '. $eln;
  21.                                 $message.='Content-Transfer-Encoding: 7bit'. $eln;
  22.                                 $message.=' TEXT HERE'.$eln;
  23.                 //начало  второго альтернативного блока (html контент)
  24.                 $message.='--'.'---alternative'. $eln;
  25.                                 $message.='Content-Type: text/html; charset="UTF-8"; '. $eln;
  26.                                 $message.='Content-Transfer-Encoding: 7bit'. $eln;
  27.                                 $message.=' <b>HTML HERE</b>'.$eln;
  28.                 //окончание части альтернативных блоков
  29.                 $message.='--'.'---alternative--'. $eln;
  30.  
  31. // продолжение общей части
  32. $message.='--'.'---mixed'. $eln;
  33.  
  34.                 //начало аттача
  35.                 $message.='Content-Type: application/octet-stream; name="N.jpg"'. $eln;
  36.                 $message.='Content-Transfer-Encoding: base64'.$eln;
  37.                 $message.='Content-Disposition: attachment; filename="N.jpg"'.$eln;
  38.                 $message.= chunk_split(base64_encode('N.jpg')).$eln;
  39.  
  40. //конец общей части
  41. $message.='--'.'---mixed--'. $eln;
  42.  
  43. if (mail ($to, $subject, $message, $headers)){echo 'good!';}else{echo 'bad';};
  44.  
  45. ?>


Вот что приходит:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Content-type: multipart/mixed; boundary="---mixed";
  2.  
  3. Content-Type: multipart/alternative; boundary="---alternative"
  4. Content-Type: text/plain; charset="UTF-8";
  5. Content-Transfer-Encoding: 7bit
  6.  TEXT HERE
  7. -----alternative
  8. Content-Type: text/html; charset="UTF-8";
  9. Content-Transfer-Encoding: 7bit
  10.  <b>HTML HERE</b>
  11. -----alternative--
  12. -----mixed
  13. Content-Type: application/octet-stream; name="N.jpg"
  14. Content-Transfer-Encoding: base64
  15. Content-Disposition: attachment; filename="N.jpg"
  16.  
  17.  
  18. -----mixed--


Собственно, в браузере вижу пустое письмо, к которому прикреплён джипег как аттач, но он имеет размер 0 bytes.
Текста TEXT HERE или <b>HTML HERE</b> я не вижу.

1) что я делаю не так?
2) я правильно понимаю, что после строки:
$headers .= 'Content-type: multipart/mixed; boundary="---mixed";'. $eln;
не нужно задавать $message='--'.'---mixed'.$eln ?
так же и про открытие любого нового блока.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB