Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.12.2009, 00:28
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

т.е. в первом и последнем слое размещаются по одной картинке ? ед что понял что во втором слое находятся картинки с равными у а какие находятся в первом и третем... как их разделять? от тех что равны между собой y координатой?
Короче пример:
есть y=1,1,2,3,4,4,5,5,6,6,7,8,9,10

как распределить эти цифры в слои:
1 слой:
2 слой:
3 слой:

напиши какие цифры додны быть в каком слое. цифры с потолка взял можешь привести свои.
Ответить с цитированием
  #12 (permalink)  
Старый 21.12.2009, 06:00
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Описываю полностью:
Есть БД, в ней табличка customers и objects. Из них скрипт достает данные и делает из данных картинки которые розмещаются в слоях (элементах DOM см.ниже $one, two и three), в средний слой и только в средний выводятся картинки из таблички objects и они в слое $two находятся всегда! Но если у картинки из этого слоя y больше чем у другой то она стоит впереди другой))) тоесть выводиться познее и соответственно она будет над другой картинкой с меншим Y..также и в customers картинки меж собой работают....Но те картинки, которые выводит из БД таблички customers должны перемещатся либо в слой $one (отображает в нем картинки выше картинок из среднего и трейтего слоя) либо в трейтий слой ($three)...в зависимости от Y object и Y customers картинок, и все картинки из customers тоже меж собой работают и меряют Y и помещаются в слои.....тоесть еть допустим такой набор данных в БД:

|objects|
|id|img |y |x |
|1|1.gif|100|200|
|2|1.gif|300|300|
|3|1.gif|100|700|

|customers|
|id|loc |y |x |
|4|2.gif|50 |200|
|5|2.gif|50 |400|
|6|2.gif|500|700|
|7|2.gif|500|300|
|8|2.gif|200|600|
|9|2.gif|300|600|

Картинки в слоях код розмещает так (все картинки соответственно id в базе здесь опишу):
<one>
4, 5,
</one>
<two>
1, 3, 2
</two>
<three>
8, 9, 6, 7
</three>

вобщемь...вся картина нынешней ситуации:
...
//создаем dom 
$dom = new DOMDocument();
//в нем главный каталог
$response = $dom->createElement('response');
$dom->appendChild($response);
//в response делаем три слоя (one, two, three)
$one = $dom->createElement('one');
$response->appendChild($one);

$two = $dom->createElement('two');
$response->appendChild($two);

$three = $dom->createElement('three');
$response->appendChild($three);

//загружаем картинки из бд в средний слой 

$myobj = mysql_query("SELECT * FROM objects"); 
while($obj = mysql_fetch_array($myobj)) {
$imgobj = $obj['img'];
$yobj = $obj['y'];
$xobj = $obj['x'];

$allobj = "<img src='$locp' style='position: absolute; left:$xobj; top:$yobj'></img>";
//пыжуем картинки в средний (второй) слой...
$Objects = $dom->createTextNode($allobj);
$two->appendChild($Objects);
}

$mybase = mysql_query("SELECT * FROM customers"); 
while($db = mysql_fetch_array($mybase)) {
$id = $db['id'];
$x = $db['x'];
$y = $db['y'];
$loc = $db['loc'];

$all = "<img src='$loc' id='$id' style='position: absolute; left:$x; top:$y'></img>";
//пыжуем картинки в первый слой...но все картинки будут всегда над средним слоем
$AllUser = $dom->createTextNode($all);
$one->appendChild($AllUser);

...
Ответить с цитированием
  #13 (permalink)  
Старый 21.12.2009, 06:06
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

если что не понятно - спрашивай, а то я может чет не так написал...ибо у меня уже с этим кодом еще и в такое время...голова квадратная! Ночь не спал...не могу решить этот вопрос((( Пожалуйста помогите!
Ответить с цитированием
  #14 (permalink)  
Старый 21.12.2009, 11:11
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

т.е. я так понял: во втором слое все картинки из objects. в первом все картинки из customers у которых y < всех Y из 2го слоя, в третьем соответсвенно все из customers, у которых y >= всех y из 2го слоя?
так я понял? или если custemers.y == одному из objects.y то его перекидывать во 2ой слой?
Ответить с цитированием
  #15 (permalink)  
Старый 21.12.2009, 14:17
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Вот так:
во втором слое все картинки из objects. в первом все картинки из customers у которых y < всех Y из 2го слоя, в третьем соответсвенно все из customers, у которых y >= всех y из 2го слоя

и во второй не надо ниче кидать)

Последний раз редактировалось Jekel, 21.12.2009 в 14:20.
Ответить с цитированием
  #16 (permalink)  
Старый 21.12.2009, 19:42
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

$mybase = mysql_query("SELECT * FROM objects WHERE id!='$pid' ORDER BY y ASC"); 
$min2y=$max2y=null;
while($db = mysql_fetch_assoc($mybase)) {
  $y[$db['y']] = $db;
  $allobj = "<img src='{$db['img']}' style='position: absolute; left:{$db['x']}; top:{$db['y'}'></img>";
//пыжуем картинки в средний (второй) слой...
  $Objects = $dom->createTextNode($allobj);
  $two->appendChild($Objects);
  $max2y = $max2y!==null ? max($max2y,$db['y']) : $db['y'];
  $min2y = $min2y!==null ? min($min2y,$db['y']) : $db['y'];
  }

$mybase = mysql_query("SELECT * FROM customers WHERE id!='$pid' ORDER BY y ASC"); 
while($db = mysql_fetch_assoc($mybase)) {
  //запихиваем данные из строк в <img>
  $all = "<img src='{$db['loc']}' width='50' height='50' id='{$db['name']}' name='{$db['name']}' style='position: absolute; left:{$db['x']}; top:{$db['y']}'></img>";
  $isbnTextq = $dom->createTextNode($all);
  $lay = $db['y']<$min2y ?  $one:$three;
  $lay->appendChild($isbnTextq);
  }


А что если customers.y > min2y и customers.y <max2y ?

я сделал что если не меньше всех во втором слое, то кидаем в слой 3 в не зависимости от того находится ли customers.y в промежутке слоя 2.

Последний раз редактировалось PeaceCoder, 21.12.2009 в 22:34.
Ответить с цитированием
  #17 (permalink)  
Старый 21.12.2009, 21:59
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

В one не добавляется ничего совсем...хотя должно если в БД посмотреть... Но в two и three все работает чудесно!!! И за это тебе огромнийшое СПАСИБО)!
Ответить с цитированием
  #18 (permalink)  
Старый 21.12.2009, 22:31
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

вот так сейчас все отображается :
Ответить с цитированием
  #19 (permalink)  
Старый 21.12.2009, 22:34
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

исправил прошлый пост. попробуй ща должно все ок.
дык тебе еще каждый слой надо по y сортировать??

Последний раз редактировалось PeaceCoder, 21.12.2009 в 22:38.
Ответить с цитированием
  #20 (permalink)  
Старый 21.12.2009, 22:41
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

та да, customers и object обьекты меж собой y меряют...надо не по max и min обьектов..а каждого отдельно взятого...как customers'ы меж собой работают..так и все обьекты с обеих таблиц должны меж собой работать((

Изменил код, ну на max и min работет... обьекты и в one и d three заносятся...

Последний раз редактировалось Jekel, 21.12.2009 в 23:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать узел <img> внутри <div> glutton Events/DOM/Window 1 09.11.2009 14:41