SmorodinKA
10.06.2016 - 14:06
Здравствуйте. Сразу хочу сказать, что я не профессиональный программист, я вообще не программист, хотя и есть опыт создания сайтов (было дело, баловался). Вот решил создать сайт, посещенный фермерству, так как сам живу в поселке и есть небольшой хозяйство.
Сайт почти готов. В этой теме я хочу задавать неясные мне вопросы, а далее получать критику. Надеюсь, мою тему не заблокируют.
И вот у меня возник такой вопрос:
Есть в БД таблица `users`, там есть поля id_country, id_area, id_settlement. Значения для этих полей берутся из трех таблиц:
country
id
name
area
id
id_country
name
settlement
id
id_area
name
У каждого пользователя на странице мне надо вывести название страны, области и города. Как лучше сделать, чтобы не делать это тремя запросами?
Спасибо.
SELECT
`users`.`name` AS `login`,
`country`.`name` AS `country`,
`area`.`name` AS `area`,
`settlement`.`name` AS `settlement`
FROM `users`,`country`,`area`,`settlement`
WHERE
`users`.`id`='$id' AND
`country`.`id`=`users`.`id_country` AND
`area`.`id`=`users`.`id_area` AND
`settlement`.`id`=`users`.`id_settlement`
Хотя подозреваю экономичнее у юзера хранить только id_settlement, а через него уже вытащить остальное -> в обратном порядке.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Чуть поправил.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Цитата |
Как лучше сделать, чтобы не делать это тремя запросами? |
Кстати, иногда простые одиночные запросы лучше, чем объединение таблиц, особенно в тех случаях когда они тяжелые или используется сортировка.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
SmorodinKA
10.06.2016 - 15:06
Сообразил вот такой код:
$query = mysql_query("SELECT `users`.`name` AS `login`, `country`.`name` AS `country`, `area`.`name` AS `area`, `settlement`.`name` AS `settlement`
WHERE `users`.`email`='".$my_row['email']."' AND country`.`id`='".intval($my_row['id_country'])."' AND `area`.`id`='".intval($my_row['id_area'])."'
AND `settlement`.`id`='".intval($my_row['id_settlement'])."' ") or die(mysql_error());
Выдает ошибку:
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 'WHERE `users`.`email`='0konstantin.smorodin@gmail.com' AND `country`.`id`='1' AN' at line 1И вопрос по сайту:Если первоначально заполнение произвести при помощи парсера с другого сайта, как на это отреагируют поисковики?
Забыл блог FROM
Цитата |
FROM `users`,`country`,`area`,`settlement` |
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
SmorodinKA
12.06.2016 - 18:04
Добрый вечер. Поздравляю всех с такой сложной ничьей в матче против сборной Англии.
Появился вопросик: визуальный редактор на сайте при добавлении материала (в частности, картинки) прописывает тег img, то есть в базу записывается <img src="xxxx">. Можно ли, при выводе информации из БД всем картинкам прописать width?
Спасибо.
Цитата (SmorodinKA @ 12.06.2016 - 18:04) |
Добрый вечер. Поздравляю всех с такой сложной ничьей в матче против сборной Англии. |

Твоя правда ))
_____________
Принимаю заказы, писать в ЛС
SmorodinKA
12.06.2016 - 21:33
Хорошо, изменить ширину картинки, размещенной в заметке, я могу с помощью css:
#note img {
width: 300px;
}
Вот как сделать, чтобы изменение происходило только, если ширина картинки более 300px?
Не совсем понял что требуется -
js:var width_img = document.getElementById("imgID").width;
if (width_img <= 300) {
document.getElementById("imgID").style.width = "250px";
}
_____________
Принимаю заказы, писать в ЛС
SmorodinKA
13.06.2016 - 22:41
Медведь
Надо выбрать все <img>, расположенные в рамках одного <div> и назначить им ширину 300px, если их ширина более этих самых 300px.
Эти изображения (ссылки на них) получаешь из DB? Если да, то покажи как они хранятся в базе данных.
_____________
Принимаю заказы, писать в ЛС
SmorodinKA
14.06.2016 - 08:29
Медведь
Они хранятся в виде текста, например:
"Шла Маша по шоссе и сосала шушку <br> <img src="sushka.jpg">"
Поле имеет тип text.
Цитата (SmorodinKA @ 14.06.2016 - 01:41) |
Надо выбрать все <img>, расположенные в рамках одного <div> |
SmorodinKA
14.06.2016 - 12:11
kawwПолучился вот такой код:
function Load() {
var elems = document.querySelectorAll("#note img");
for (var i = 0, cnt = elems.length; i < cnt; i++) {
if (elems[i].width > 300) {
elems[i].style.width = '300px';
}
}
}
Можно его как-то оптимизировать?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.