Дмитрий Авилов: п.с. это скорее были просто размышления) иногда помогает... когда вот так печатешь вопросы - находятся ответы.. ) но, если будут идеи или подсказы - буду признателен.
Дмитрий Авилов: да.. никогда особо не вникал в это - int, varchar для коротких, да text... всегда хватало. Инт 4 - это 9999 записей... не так уж и много) с запросом кривенько, но решил - все добавляется, удаляется... и когда удаляется - теперь везде само удаляется - в общем супер!
одна загвоздка осталась.... с update. Жму профиль - открывается поле для редактирования - данные теперь из двух таблиц. Чекбоксы нужные "зажглись" все супер. Но я, допустим, убираю один чек... или добавляю - и как теперь мне в таблице связей это отразить...
Данные приходят такие:
id человека, и массив с городами.. скажем $person_id=2, $cities=array(2,3,25).
По идее нужно что-то вроде такого...
SELECT city_id FROM staff_city WHERE staff_id = $person_id /// получаю текущий список..
далее сравниваю два массива - причем дважды
1) в новом есть - в старом нет - INSERT
2) в новом нет - в старом есть - DELETE...
Более простого пути пока не вижу/не знаю...
Спасибо! Почти все понял)
Массивом не получилось - только так..
$query="SELECT a.*, GROUP_CONCAT(DISTINCT b.city_id) AS CityID
FROM `staff` AS a
LEFT OUTER JOIN `staff-city` AS b ON a.id = b.staff_id
WHERE a.id = 2";
Получаю CityID - через запятую, но explode спасет..
Дмитрий Авилов: сделал, это оечень круто! жаль. что не сразу додумался...
получилось, хоть и не сразу... нужны одинаковые типы полей, у м еня в одном было в одном int(4) в другом int(11)... пришлось покопаться, но снова я вернулся к своему прежнему вопросу... как обратно это теперь собрать в один массив(объект)... одним запросом.
Дмитрий Авилов: да... не продумал в начале пути( придется прилично все переписать.. Вставить то ладно, а вот updatы и deletы по нескольким таблицам, чувствую придется помучаться... Вот редактируют профиль - добавляют еще один город -> В таблицу staff - update, в доп. таблицу - insert?... жуть
. Читаю про "один ко многим" и "многие ко многим" - это как-то в самой MySQL отмечается (отличается) или это просто некая характеристика?...
в моем случае получится доп. таблица...
staff_id city_id
1 2
1 3
1 26
2 2
3 4
3 2
Сергей Протько: ладно.. видимо не судьба( все сломалось... утром все работало - после установки watch перестал работать и php не сохраняется - судя по скудному количеству комментариев это никто и не использует... format c: и все сначала.. сделаю html а php сам допишу.
Сергей Протько Сергей, туплю... установил https://github.com/viniwrubleski/jade-php и теперь туплю что дальше?
Usage
var jade = require('jade');
var jadephp = require('jade-php');
jadephp(jade);
var html = jade.render('string of jade');
вот этот код куда пихать? ...
также установил... https://www.npmjs.com/package/gulp-jade-php -
у него подключение уже понятное ... var jade = require('gulp-jade-php');
буду признателен, если подсобите
нет... упростил до $query="SELECT *, (SELECT * from `grafik` WHERE `city` = 1) as grafik from `cities` as a INNER JOIN `mp-content` as b ON a.id=b.city WHERE a.id=1";
указываю явно, что city=1, а так будет подставляться переменной...
пишет ошибку
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)'