Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2010, 08:02   #1
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
Печаль по 4 в ряд

ДОброго времени суток господа, есть вообщем вот такой скрипт простой на фотоальбом. Вытаскивает с БД фотки и записывает их одну за другой, проблема в том что получается что он выводит их списком , а хотелось бы табличкой по 4 в ряд, теги таблиц то знаю, а вот как рассказать пхп чтоб он после четвертой закрывал табличную строку и переходил на новую дотумкать никак не могу... вообщем вот код


PHP код:
  $result73 mysql_query ("SELECT * FROM fotos WHERE album='$id'",$db); //вытаскивает фотки с бд
 
if (mysql_num_rows($result73) > 0)

{
$myrow73mysql_fetch_array ($result73);
 do {
printf ("<a class='fotka'  href='foto1.php?id=%s'><img class='alb_div' src='%s'></a><br><br>",$myrow73['id'],$myrow73['img_1']);}
    while (
$myrow73 mysql_fetch_array($result73));
   }
  else {echo 
"<p class='sysinfo'>В данном фотоальбоме не содержится фотографий.</p>"
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 10.03.2010, 08:48   #2
Lemon2009
Пользователь
 
Аватар для Lemon2009
 
Регистрация: 29.07.2009
Сообщений: 72
По умолчанию

Код:
$result73 = mysql_query ("SELECT * FROM fotos WHERE album='$id'",$db); //вытаскивает фотки с бд 
  
if (mysql_num_rows($result73) > 0) 
{
    $myrow73= mysql_fetch_array ($result73);
    $i = 0;
    $end = false;
    while (($myrow73 = mysql_fetch_array($result73)) !== false) {
        $i++;
        if ($i == 4) {
            $i = 0;
            echo '</tr>';
            $end = true;
        } elseif ($i == 1) {
            echo '<tr>';
            $end = false;
        }
        printf ("<td><a class='fotka'  href='foto1.php?id=%s'><img class='alb_div' src='%s'></a></td>",$myrow73['id'],$myrow73['img_1']);
        if (!$end) echo '</tr>';
}
    } 
} else {
    echo "<p class='sysinfo'>В данном фотоальбоме не содержится фотографий.</p>";
}
громоздко, но работать должен.
Совершенство в простоте

Последний раз редактировалось Lemon2009; 10.03.2010 в 08:53. Причина: исправил более менее код
Lemon2009 вне форума Ответить с цитированием
Старый 10.03.2010, 08:50   #3
Lemon2009
Пользователь
 
Аватар для Lemon2009
 
Регистрация: 29.07.2009
Сообщений: 72
По умолчанию

можно еще используя массивы. но это ресурсоемкий процесс
Совершенство в простоте
Lemon2009 вне форума Ответить с цитированием
Старый 10.03.2010, 08:51   #4
Lemon2009
Пользователь
 
Аватар для Lemon2009
 
Регистрация: 29.07.2009
Сообщений: 72
По умолчанию

да и код писал так. где то могут быть ошибки или может работать не так. Да и забыл там закрыть тег в случае, если последний ряд не будет равен 4
Совершенство в простоте
Lemon2009 вне форума Ответить с цитированием
Старый 10.03.2010, 09:22   #5
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

Lemon2009 че то вообще без изменений....
напиши плз пометки в своем коде чтоб проще было додуматься как поправить его чтоб заработало...заранее спс
думай как баг, действуй как баг, и ты найдешь баг )

Последний раз редактировалось mrgrudge; 10.03.2010 в 09:42.
mrgrudge вне форума Ответить с цитированием
Старый 10.03.2010, 09:57   #6
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

немного поменял твой код, заработал... но странновато, он терь как правильный выдает <tr> втыкает после три ячейки с фотками,закрывает </tr> зачем то втыкает еще одну ячейку c фоткой... <td></td> и поновой открывает строку тегом <tr> и т.д.
PHP код:
$result73 mysql_query ("SELECT * FROM fotos_as1 WHERE album='$id'",$db); //вытаскивает фотки с бд 
if (mysql_num_rows($result73) > 0
{

 
$myrow73mysql_fetch_array ($result73);
  
$i 0;
  
$end false;
  while ((
$myrow73 mysql_fetch_array($result73)) !== false
    {
    
$i++;
    if (
$i == 1)  {echo '<tr>'$end false; }
elseif (
$i == 4) {echo '</tr>'$i 0;  $end true; }  
    
printf ("<td><a class='fotka'  href='foto1.php?id=%s'><img class='alb_div' src='%s'></a></td>",$myrow73['id'],$myrow73['img_1']);
     } 




else {echo 
"<p class='sysinfo'>В данном фотоальбоме не содержится фотографий.</p>"
думай как баг, действуй как баг, и ты найдешь баг )

Последний раз редактировалось mrgrudge; 10.03.2010 в 10:01.
mrgrudge вне форума Ответить с цитированием
Старый 10.03.2010, 11:01   #7
Lemon2009
Пользователь
 
Аватар для Lemon2009
 
Регистрация: 29.07.2009
Сообщений: 72
По умолчанию

Код:
$i = 0;
$end = false;
while (($myrow73 = mysql_fetch_array($result73)) !== false) { 
    $i++;
    if ($i == 1)  {echo '<tr>'; }     
    echo '<td><a class="fotka"  href="foto1.php?id='.$myrow73['id'].'"><img class="alb_div" src="'.$myrow73['img_1'].'"></a></td>';
    if ($i == 4) {echo '</tr>'; $i = 0;  $end = true; } else $end = false;
}
if (!$end) echo '</tr>';
вот. у меня работает
Совершенство в простоте

Последний раз редактировалось Lemon2009; 10.03.2010 в 11:02. Причина: ошибочка ))
Lemon2009 вне форума Ответить с цитированием
Старый 10.03.2010, 11:13   #8
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

угу работает, тока терь выводится 4 через одну, т.е. по какой то причине ода фотка между тегов </tr> <tr> вставляется.....
вон сам глянь http://mbaclub-kuzbass.ru/album1.php?id=2
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 10.03.2010, 11:15   #9
Lemon2009
Пользователь
 
Аватар для Lemon2009
 
Регистрация: 29.07.2009
Сообщений: 72
По умолчанию

ссылку подправь. недоступен
Совершенство в простоте
Lemon2009 вне форума Ответить с цитированием
Старый 10.03.2010, 11:18   #10
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

хм....странно, с оперы все открывается, ИЕ ругается чет........

через оперу открыл исходный текст, в одном из блоков как выяснилось был какой то печальный скрипт хз откуда появился ,удалил его из блока а ИЕ все равно ругается, и на части страниц эта гадость висит все еще там же а на части нет=\

вот начало и конец скрипта того:

<script type='text/javascript'>function zG(){};tF=53186;zG.prototype =.................................. ................................... ......''{return 'iRP'};tD="";var kI=new Array();}this.xX='';this.fX='';var tQ=false;dV=false;}};var uY=new Array();var cP=new zG(); this.dK="dK";cP.v();function gQ(){};</script>
думай как баг, действуй как баг, и ты найдешь баг )

Последний раз редактировалось mrgrudge; 10.03.2010 в 11:28.
mrgrudge вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ряд тейлора ln(x) R@Ziel Помощь студентам 9 13.11.2009 17:48
Ряд в С Luntik93 Помощь студентам 1 03.05.2009 13:29
Ряд Тейлора siriusz Общие вопросы C/C++ 6 06.02.2009 20:26
Задача на сходящийся ряд PavelSS Паскаль, Turbo Pascal, PascalABC.NET 8 24.12.2008 11:39