|
|
|
|
|
для: Лена
(01.12.2008 в 23:59)
| | Вот что получилось.
<?php
include("configs/dbopen.php");
$sql= "SELECT *, m.id_menu AS menu
FROM img AS i
LEFT JOIN menu AS m ON i.id_menu = m.id_menu
WHERE i.id_menu = m.id_menu
ORDER BY i.id_menu";
$res = mysql_query($sql);
if(!$res) exit("Error in $sql: ". mysql_error());
if(mysql_num_rows($res)>0){
$rows = array();
while($row = mysql_fetch_assoc($res))
$rows[$row['title']][] = $row['name'];
$maxcount = 0;
foreach($rows as $row)
$maxcount = max($maxcount, count($row));
foreach($rows as $name => $row){
echo $name;
echo "<table>";
$j = 0;
for($i = 0; $i < $maxcount; $i++){
if(!($j%4)) echo "<tr>";
$file = "lightbox/images/copy/" . $row[$i];
$big_file = "lightbox/images/" . $row[$i];
if($row[$i])
echo "<td><a href='". $big_file ."'><img src='" . $file . "' width='180' height='100'
alt = '" .$file . "'/></a></td>";
if(!(($j+1)%4)) echo "</tr>";
$j++;
}
echo "</table>";
print "<hr size = '1px' width='75%'>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 19:35)
| | В принципе я тоже разобралась. Больше в этой теме пока ничего писать не нужно. День тяжелый был, уже спать иду. Завтра свой код исправленный здесь покажу. Спасибо. | |
|
|
|
|
|
|
|
для: Trianon
(01.12.2008 в 19:28)
| | Мне то ясно. Можно даже взять и то что у автора, но выводить надо во вложенном цикле не текущую строку ресурса, а смещения, начиная от первого изображения... Короче, причина не в принципе расклада таблицы (как закрыть тег).
Сегодня и так башка болит, еще вы меня "нервируете" :)) Вместо этих "баталий", давно бы написали - "Милочка, а вот тут вы не правы, надо вот так...". ;-) | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 19:01)
| | >Строка ресурса должна выглядеть либо так: а = (пусть строка), b = array(а это уже массив изображений, вот его во вложенном цикле можно и разложить), с = (чего-то);
такое можно достичь через group_concat , но на мой взгляд, овчинка выделки не стоит.
>любо так:
>0 стр. а = (пусть строка), b = (первое изображение), с = (чего-то)
>1 стр. а = (пусть строка), b = (второе изображение), с = (чего-то)
>и т.д...
А такое - вполне рядовой случай
<?
$sql = "SELECT objects.name, images.path
FROM objects LEFT JOIN images ON images.object_id = objects.id
GROUP BY objects.name";
$res = mysql_query($sql);
for($rows = array(); $row = mysql_fetch_assoc($res);)
$rows[$row['name']][] = $row['path'];
$maxcount = 0;
foreach($rows as $row)
$maxcount = max($maxcount, count($row));
foreach($rows as $name => $row)
{
echo "<tr><td>$name</td>";
for($i = 0; $i < $maxcount; $i++)
{
$val = $i < $maxcount ? "<img src=\"".$row[$i]."\" />" : " ";
echo "<td>$val</td>\r\n";
}
echo "</tr>\r\n";
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(01.12.2008 в 18:22)
| | Да разве в этом дело, бог с ним, пусть их будет по три, или 4, потом 3, потом 5... Вот вы, как MySQL-док (:)) скажите, как можно при раскладе ресурса, если его некий элемент, это не массив этих изображений, при таком подходе разложения, получить необходимую таблицу?
Строка ресурса должна выглядеть либо так: а = (пусть строка), b = array(а это уже массив изображений, вот его во вложенном цикле можно и разложить), с = (чего-то);
любо так:
0 стр. а = (пусть строка), b = (первое изображение), с = (чего-то)
1 стр. а = (пусть строка), b = (второе изображение), с = (чего-то)
и т.д...
Во втором случае надо тогда ориентироваться, например, проверяя по а, которая должна быть уникальной для каждых N изображений.
Вот тогда я понимаю, иначе как? Сколько бы не влаживали функций, в итоге вывод будет только одного из N изображений, при подходе как выше. | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 18:12)
| | из базы :)
Из схемы же не следует, что у любого элемента меню РОВНО четыре картинки? :)
Собственно, таких количественных ограничений в любом случае следовать не будет. | |
|
|
|
|
|
|
|
для: Trianon
(01.12.2008 в 18:08)
| | Ну это уже другой вопрос. В данном случае, у автора выводится по одному. А как их может быть несколько, если просто происходит цикл прохода ресурса: первая итерация - первое изображение из n изображений, вторая - второе, и т.д.. Откуда могут появиться другие? | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 17:49)
| | картинок же может быть и меньше, и больше четырех на строку - в результате запроса... | |
|
|
|
|
|
|
|
для: Trianon
(01.12.2008 в 17:46)
| | А, понял я про что, про забытые скобки. Блин, пардон: if (!(($i+1) % $col)). Будет не закрыт тег, но вывод будет-то по требуемому числу. Я просто не пойму от куда берутся эти изображения. Тут как-то сам ресурс тогда по модулю 4 разбивать нужно, иначе "какая-то не то" получается. | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 17:41)
| | И что? В иcходнике html видны закрывающие теги </TR> ?
Кому не надо? | |
|
|
|
|