[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как уменьшить (улучшить цикл) ?
Strannik
Здравствуйте. Народ подскажите как можно улучшить скрипт.
Задача скрипта при помощи данных из базы данных генерировать несколько div, таким образом, чтобы на каждом div было по 7 записей из базы данных(подряд).

Схема

1-й div) 2-й div) и т.п.

1 2 8 9
3 4 5 10 11 12
6 7 13 14


Код:

<div>
<div>
<?php

conn();
$sql="SELECT * FROM `project`";
$res=mysql_query($sql);
$num=mysql_num_rows($res);
$max_img=7;
$max_divs=$num/$max_img;
if (is_int($max_divs)) {$max_divs=ceil($max_divs);} else{ $max_divs=$max_divs;}
for($i=0;$i<=$max_divs;$i++)
{
$y1=$i+1;
$y2=$i+2;
$y3=$i+3;
$y4=$i+4;
$y5=$i+5;
$y6=$i+6;
$y7=$i+7;
$sql1="SELECT * FROM `project` LIMIT $i,$y1";
$sql2="SELECT * FROM `project` LIMIT $y1,$y2";
$sql3="SELECT * FROM `project` LIMIT $y2,$y3";
$sql4="SELECT * FROM `project` LIMIT $y3,$y4";
$sql5="SELECT * FROM `project` LIMIT $y4,$y5";
$sql6="SELECT * FROM `project` LIMIT $y5,$y6";
$sql7="SELECT * FROM `project` LIMIT $y6,$y7";
$res1=mysql_query($sql1);
$res2=mysql_query($sql2);
$res3=mysql_query($sql3);
$res4=mysql_query($sql4);
$res5=mysql_query($sql5);
$res6=mysql_query($sql6);
$res7=mysql_query($sql7);
if(!$res1){;$link1=''; $logo1='';}else{$info1=mysql_fetch_assoc($res1);$link1='<a href="proekt.php?id='.$info1['id'].'"><img src="img_projects/'.$info1['logo'].'" width="80" height="80"</a>';}
if(!$res2){;$link2=''; $logo2='';}else{$info2=mysql_fetch_assoc($res2);$link2='<a href="proekt.php?id='.$info2['id'].'"><img src="img_projects/'.$info2['logo'].'" width="80" height="80"</a>';}
if(!$res3){;$link3=''; $logo3='';}else{$info3=mysql_fetch_assoc($res3);$link3='<a href="proekt.php?id='.$info3['id'].'"><img src="img_projects/'.$info3['logo'].'" width="80" height="80"</a>';}
if(!$res4){;$link4=''; $logo4='';}else{$info4=mysql_fetch_assoc($res4);$link4='<a href="proekt.php?id='.$info4['id'].'"><img src="img_projects/'.$info4['logo'].'" width="80" height="80"</a>';}
if(!$res5){;$link5=''; $logo5='';}else{$info5=mysql_fetch_assoc($res5);$link5='<a href="proekt.php?id='.$info5['id'].'"><img src="img_projects/'.$info5['logo'].'" width="80" height="80"</a>';}
if(!$res6){;$link6=''; $logo6='';}else{$info6=mysql_fetch_assoc($res6);$link6='<a href="proekt.php?id='.$info6['id'].'"><img src="img_projects/'.$info6['logo'].'" width="80" height="80"</a>';}
if(!$res7){;$link7=''; $logo7='';}else{$info7=mysql_fetch_assoc($res7);$link7='<a href="proekt.php?id='.$info7['id'].'"><img src="img_projects/'.$info7['logo'].'" width="80" height="80"</a>';}
?>
<div
class="panel">
<div
class="panel-wrapper">
<h2
class="title">Panel0<?php echo $i++; ?></h2>

<div
style="width:800px;text-align:center;"><?php if ($info1['logo']!=''){echo $link1;}; ?><?php if ($info2['logo']!=''){echo $link2;}; ?></div>

<div
style="width:800px;text-align:center;"><?php if ($info3['logo']!=''){echo $link3;}; ?><?php if ($info4['logo']!=''){echo $link4;}; ?><?php if ($info5['logo']!=''){echo $link5;}; ?></div>
<div
style="width:800px;text-align:center;"><?php if ($info6['logo']!=''){echo $link6;}; ?><?php if ($info7['logo']!=''){echo $link7;}; ?></div>
</div>
</div>
<?php



}?>
</div>
</div>




Спустя 12 часов, 43 минуты, 54 секунды (16.02.2012 - 13:17) shmali написал(а):
обалдеть ....
Во первых , прекращай писать HTML и PHP в одном файле , переходи на ООП (Это так совет , дело конечно твое) .
Во вторых зачем ты столько раз , тянешь инфу из базы, сделай одну выборку и потом распарси ее.
Все твои IF-ы можно свободно запихать в один FOR ,как ты сделал выше.
Хотя если сделать все в 2 этапа ..
1. Получил целую выборку
2. Распарсил результат

Необходимость в проверках отпадет сама собой ..

Спустя 4 минуты, 10 секунд (16.02.2012 - 13:21) inpost написал(а):
shmali
1. А какая связь между PHP + HTML в одном файле, и ООП ?
С остальным согласен smile.gif

Спустя 18 минут, 55 секунд (16.02.2012 - 13:40) shmali написал(а):
Цитата
1. А какая связь между PHP + HTML в одном файле, и ООП ?


smile.gif прикалываешься ?))
Классы , функции - а не все вперемешку (я как то по другому понимаю ООП?). Это к проблеме не относиться , просто совет .

Спустя 13 минут, 16 секунд (16.02.2012 - 13:53) inpost написал(а):
Код на размышление :)
<html>
<
body>
<
div>
<?php
class
bebe() {
public function a() {
echo 'text';
}
}

$var = new bebe();
$var->a();
?>
</div>
</
body>
</
html>

Спустя 3 минуты, 49 секунд (16.02.2012 - 13:57) shmali написал(а):
Цитата
Код на размышление smile.gif

biggrin.gif Веселый ты парень )))

Я вот только не пойму зачем это складировать в одном файле?
почему не написать класс отдельно , а в HTML подставить только

$var = new bebe();
$var->a();

Я уже не говорю про про MVC ))

Спустя 27 минут, 15 секунд (16.02.2012 - 14:24) inpost написал(а):
shmali
Ты тоже! )))

Спустя 1 день, 30 минут, 57 секунд (17.02.2012 - 14:55) Strannik написал(а):
народ спасибо всем за помощь. подумал немного и устранил проблему).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.