Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Из БД в <img> а их розмещаем по слоям (https://javascript.ru/forum/server/6759-iz-bd-v-img-ikh-rozmeshhaem-po-sloyam.html)

Jekel 20.12.2009 03:16

Из БД в <img> а их розмещаем по слоям
 
Товарищи программисты, прошу Вас о помощи!
Есть бд, в ней допустим 10 строк...все данные перегоняются в 10 картинок с им принадлежащими данными которые беру из БД ($all) Все выводит хорошо, но нужно выводить картинки ($all) так чтобы они были по своим слоям..т.е если $y первого id равен 100 а $y второго id равен 110, то id1 выводит в $isbnTextq3 = $dom->createTextNode($all); (смотреть ниже), а id2 выводит в $isbnTextq1...и если id1.y = id2.y то в $isbnTextq2.
Тоесть есть три слоя ($one, $two и $three) и нужно все картинки автоматически роспихивать по своим слоям...и причем чтобы все картинки брали участие в сравнении Y...
Очень прошу помочь...
...
//гребем данные из БД
$mybase = mysql_query("SELECT * FROM customers WHERE id!='$pid'"); 
while($db = mysql_fetch_array($mybase)) {
$id = $db['id'];
$name = $db['name'];
$x = $db['x'];
$y = $db['y'];
$loc = $db['loc'];

//запихиваем данные из строк в <img>
$all = "<img src='$loc' width='50' height='50' id='$name' name='$name' style='position: absolute; left:$x; top:$y'></img>";

//слой первый
$isbnTextq1 = $dom->createTextNode($all);
$one->appendChild($isbnTextq1);


//слой второй
$isbnTextq2 = $dom->createTextNode($all);
$two->appendChild($isbnTextq2);


//и нижний слой
$isbnTextq3 = $dom->createTextNode($all);
$three->appendChild($isbnTextq3);

}
...

Jekel 20.12.2009 16:00

((please help!

PeaceCoder 20.12.2009 17:36

выбери все элементы и отсортируй их по y координате потом просто цилклом примени элементы. я так понял?

Jekel 20.12.2009 18:12

ну да...только если добавляется новый...11-й элемент, то он тоже принемает учатсие в сортировке автоматически)))

Jekel 20.12.2009 18:13

как этот код описать(((???

PeaceCoder 20.12.2009 18:26

$mybase = mysql_query("SELECT * FROM customers WHERE id!='$pid'"); 
$y = array();
while($db = mysql_fetch_assoc($mybase)) $y[$db['y']] = $db;

ksort($y);
 
foreach ($y as $_y=>$db){
  //запихиваем данные из строк в <img>
  $all = "<img src='{$db['loc']}' width='50' height='50' id='{$db['name']}' name='{$db['name']}' style='position: absolute; left:{$db['x']}; top:$_y'></img>";
 
  //слой
  $isbnTextq1 = $dom->createTextNode($all);
  $one->appendChild($isbnTextq1);
  }

Jekel 20.12.2009 18:33

:blink: хм, интрестинг) сейчас попробую

Jekel 20.12.2009 18:49

СПАСИБО ОГРОМНОЕ ТЕБЕ МИРНЫЙ КОДЕР))))
О_о работает, но они все в одном слое...надо чтобы на три слоя (см.ниже) розбивало.. а сейчас оно просто в одном сортирует какой обьект выше а какой иже)

//слой первый
$isbnTextq1 = $dom->createTextNode($all);
$one->appendChild($isbnTextq1);
 
 
//слой второй
$isbnTextq2 = $dom->createTextNode($all);
$two->appendChild($isbnTextq2);
 
 
//и нижний слой
$isbnTextq3 = $dom->createTextNode($all);
$three->appendChild($isbnTextq3);

PeaceCoder 20.12.2009 23:12

непойму каким мокаром распределять элементы по слоям. обьясни доходчивей.

Jekel 20.12.2009 23:40

Вот смотри, есть три слоя (которые читает AJAX код...а этот php создает xml)...верхний слой называется -> "isbnTextq1" (картинки отобрадает над всеми остальными), средний -> "isbnTextq2" (картинки которые по y равны меж собой розмещаются здесь), нижний -> "isbnTextq3" (картинка в этом слое розмещается под всеми слоями (картинками в нем)).

//слой первый
$isbnTextq1 = $dom->createTextNode($all);
$one->appendChild($isbnTextq1);
 
 
//слой второй
$isbnTextq2 = $dom->createTextNode($all);
$two->appendChild($isbnTextq2);
 
 
//и нижний слой
$isbnTextq3 = $dom->createTextNode($all);
$three->appendChild($isbnTextq3);


Часовой пояс GMT +3, время: 17:36.