|
|
|
|
|
для: Valick
(08.12.2014 в 12:12)
| | >Кто-то украл аккаунт Trianon'a :)
Найдете - отберите и верните владельцу. :))
>Мы же вроде как договорились всем форумом, что запрос в цикле это зло и давить его нужно в зародыше, ибо нефиг.
В продакшн-варианте логику, конечно, нужно оптимизировать, убирая запрос из цикла, джойня таблицы и т.д., кто бы спорил.
Вот только человека, который пишет в одном операторе echo вывод и описания и картинки, и при эьтом удивляется, что у него описания дублируются под каждую картинку, до продакшена допускать нельзя. И оптимизацией заниматься тоже нельзя. Ему нужно осваивать элементарную логику алгоритма. А для этого требуется убрать сперва все оптимизирующие навороты. Иначе он за деревьями леса не увидит. | |
|
|
|
|
|
|
|
для: KPETuH
(08.12.2014 в 12:17)
| | достаточно мудрый совет | |
|
|
|
|
|
|
|
для: Lost_hlq
(06.12.2014 в 20:40)
| | Зачем вообще хранить имена картинок в базе если привязаны они все равно к ID товара и никакой другой информации эта таблица не несет? Не проще ли при сохранении картинок создавать папку с ID товара и туда кидать нужные картинки? | |
|
|
|
|
|
|
|
для: Trianon
(07.12.2014 в 22:48)
| | Кто-то украл аккаунт Trianon'a :)
Мы же вроде как договорились всем форумом, что запрос в цикле это зло и давить его нужно в зародыше, ибо нефиг. | |
|
|
|
|
|
|
|
для: Lost_hlq
(07.12.2014 в 17:38)
| | >так вот когда вывожу, выводятся картинки 3 штуки например , и так же дублируется описание , имя и так далее из таблицы tovar.
>так вот как мне вывести так что бы выводились от 1до 3 картинки, и только одно описание имя и т.д из таблицы tovar
так может не стоит в один запрос загонять всю логику?
Сделайте простейший запрос на товары, цикл по товаарам , и внутри него простейший запрос фото, и цикл по фотографиям - сразу настанет счастье. | |
|
|
|
|
|
|
|
для: Lost_hlq
(07.12.2014 в 18:15)
| | Можно и на русском - принцип в следующем:
если есть список значений, каждая строка которого включает повторяющуюся информацию А и различную информацию Б, и необходимо вывести в заголовке информацию А, а под ней информацию Б, то:
1) объявляем вне цикла переменную, которой будем контролировать значение А.
2) в каждую итерацию цикла предваряем проверкой равенства внешней переменной и А - если они не равны, то выводим информацию А, и внешней переменной присваиваем значение А.
Значение Б выводится без проверки.
Если А принадлежит одной персоне, а Б, это набор значений, то значит нужно проверить не первой ли итерацией цикла является текущая его итерация, и если да, то выводим А, а далее Б.
Но так как у цикла while нет явно указанного счетчика итерации, а тревожить MySQL дабы узнать положение указателя не стоит, указываем переменную вне цикла - она равна 0, выводим А, после чего устанавливаем ее в 1, запрещая дальнейший вывод А.
Случай с набором описан выше. Так понятнее? | |
|
|
|
|
|
|
|
для: confirm
(07.12.2014 в 17:45)
| | блин сидел ломал голову с запросом хотел там как то исключить эти записи(
а можете написать на русском что именно делает этот код ? | |
|
|
|
|
|
|
|
для: Lost_hlq
(07.12.2014 в 17:38)
| |
<?
$id = 0;
while ($row=$bd->fetch_assoc($result_set)) {
if(!$id) {
$id = 1; //или $id=$row['ID'] и $id != !$id $row['ID'] для вывода множества первичных данных
//вывод основной
}
//вывод фото
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.12.2014 в 13:24)
| | вот структура таблицы tovar:
CREATE TABLE `tovar` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`User` varchar(50) NOT NULL,
`price` int(11) NOT NULL,
`name` varchar(200) NOT NULL,
`opisanie` text NOT NULL,
`url` varchar(1000) NOT NULL,
`categories` varchar(1000) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=327 DEFAULT CHARSET=cp1251
|
таблицы image:
CREATE TABLE `image` (
`ID` int(255) NOT NULL,
`images` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
|
вот так вывожу нужную мне информацию:
<?php
$result_set=$bd->query("SELECT DISTINCT * FROM image LEFT JOIN tovar USING(id) where `ID`='$op' ");
while ($row=$bd->fetch_assoc($result_set))
{
$x=$row['images'];
$y=$row['name'];
$z=$row['opisanie'];
$p=$row['price'];
$url=$row['url'];
$id=$row['ID'];
$u=$row['User'];
echo "
<div class='lock_image'>
<img class='image' src='$x'>
</div>
<div>
<h1>$y</h1>
<p>Описание:</p>
$z <br>
Цена: $p $ <br>
Опубликовал:$u
<div>
"
;}
?>
|
так вот когда вывожу, выводятся картинки 3 штуки например , и так же дублируется описание , имя и так далее из таблицы tovar.
так вот как мне вывести так что бы выводились от 1до 3 картинки, и только одно описание имя и т.д из таблицы tovar | |
|
|
|
|
|
|
|
для: Lost_hlq
(07.12.2014 в 13:10)
| | приведите пожалуйста структуру!
структуру можно посмотреть с помощью запроса
SHOW CREATE TABLE `ИмяТаблицы`;
|
Что является первичным ключом второй из таблиц?
Фраза "таблицы связываются по ID" - пустой звук.
Ни таблицы сами по себе (ни картинки из них) никуда не связываются, пока запрос на сервер не послан.
Запрос написать вы не можете, иначе бы сюда не писали. Так что забудьте о том, что они как-то связываются, пока не определитесь с ключами.
и наконец.
На примере строк таблиц, которые вы привели, какой отклик дает ваш запрос?
А какой отклик вы ожидаете, то есть который бы вас устроил? | |
|
|
|
|