|
автор: Brandon Hit (25.01.2006 в 11:23) |
|
| Если, конечно, можно что-то сделать:)
Задача:
Данные, полученные из 3 таблиц, должны быть выведены в таблицу 7x7 следующим образом:
1. Если есть данные в таблице 1 для ячейки ($x+$j,$y+$i) выводим их.
2. Иначе, если есть данные в таблице 3 для ячейки ($x+$j,$y+$i) выводим их.
3. Если нету, выводим данные из 2ой таблицы(если есть) для ячейки ($x+$j,$y+$i)
Входные пар-ры:
Переменные $x и $y задаются пользователем.
Таблицы 1,2 и 3 всегда возвращают не более 1 результата.
<?php
$query2=mysql_query("SELECT * FROM table1 WHERE y>$y-4 AND y<$y+4 AND x>$x-4 AND x<$x+4 ORDER by y,x ASC");
$query3=mysql_query("SELECT * FROM table2 WHERE y>$y-4 AND y<$y+4 AND x>$x-4 AND x<$x+4 ORDER by y,x ASC");
$query4=mysql_query("SELECT * FROM table3 WHERE y>$y-4 AND y<$y+4 AND x>$x-4 AND x<$x+4 ORDER by y,x ASC");
echo '<table>';
for ($i=-3; $i<=3; $i++)
{
echo '<tr>';
for ($j=-3; $j<=3; $j++)
{
echo '<td>';
if (!isset($next_t1) or ($next_t1=='y')) {$result2=mysql_fetch_array($query2);$next_t1='n';}
if (!isset($next_t2) or ($next_t2=='y')) {$result3=mysql_fetch_array($query3);$next_t2='n';}
if (!isset($next_t3) or ($next_t3=='y')) {$result4=mysql_fetch_array($query4);$next_t3='n';}
if ($result2['x']==$x+$j and $result2['y']==$y+$i) {echo $result2['info']; $next_t1='y';}
if ($result4['x']==$x+$j and $result4['y']==$y+$i) {echo $result4['info']; $$next_t3=='y';}
if ($result3['x']==$x+$j and $result3['y']==$y+$i and (($result3['x']==$result2['x'] and $result3['y']==$result2['y']) or ($result3['x']==$result4['x'] and $result3['y']==$result4['y']))) {$next_t2='y';}
else if ($result3['x']==$x+$j and $result3['y']==$y+$i) {echo $result3['info']; $next_t2='y';}
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
?>
|
| |
|
|
|
|
|
|
|
для: Brandon Hit
(25.01.2006 в 11:23)
| | А чем данный код не устраивает? | |
|
|
|
|
автор: Brandon Hit (25.01.2006 в 13:55) |
|
|
для: cheops
(25.01.2006 в 13:09)
| | Да впринципе устраивает:)
Но он слишком долго выполняется...
запутался:) | |
|
|
|