За последние 24 часа нас посетили 203036 программистов и 2182 робота. Сейчас ищут 1635 программистов ...

Вывод три картинки по горизонтали.

Тема в разделе "PHP для новичков", создана пользователем iStory, 11 мар 2012.

  1. iStory

    iStory Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    Доброе утро!

    Ребята не посчитайте полным нубом, но прошу помощи казалось бы в простом вопросе. Уже второй день ломаю голову как его решить. В Google и в поиск по сайту прошу не посылать, и тем более книги листать - испробовано уже решительно всё.
    Хожу от ответа где-то рядом, но голова уже не варит и логика включается через раз (и то не по условию).

    Суть вопроса.
    Делаю простой каталог. Данные хранятся в MySQL в трех полях: id, cat_name, cat_img.
    Вывожу их с помощью даннаго кода:
    Код (PHP):
    1. <?
    2. $result2 = mysql_query("SELECT * FROM sws_cat");
    3.  
    4. printf ("<table>");
    5. while($myrow = mysql_fetch_array ($result2)) 
    6. { 
    7. printf ("
    8.     <a href=''>%s</a></td>
    9.   </tr>
    10.   <tr>
    11.     <td><a href=''><img src='images/%s' width=90 height=80 hspace=5 vspace=10 ></a></td>
    12.   </tr>
    13. </table>",$myrow["cat_name"],$myrow["cat_img"]);{
    14.  
    15.  
    16. if($i%1)
    17.     {
    18.  
    19. printf (" <table align='center' class='listing'>
    20.                 <tr></tr>
    21.                 <tr></tr>
    22.             </table>");  }
    23.  
    24.  
    25.  
    26.  }
    27.     $i++;
    28.     
    29. }
    30. ?>
    Но ни как не могу добиться правильного отображения. А именно, три картинки по горизонтали.
    С этим кодом у меня всё отображается совершенно неприемлемо, как уже только ни пробовал. Понимаю, что нужно сделать деление по условию и вывести в цикле. Но как реализовать, голова уже не варит.
    Перепробовал кучу способов из поиска, но всё тщетно.

    Помогите пожалуйста, разжуйте на пальцах если возможно.
     
  2. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    не совсем понят вывод вашего хтмля но суть должна быть примерно такой:
    Код (PHP):
    1. if($i % 3 == 0) {
    2.     // тут <tr />";
    3. }
    4.  
     
  3. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Код (PHP):
    1. <?php
    2. echo('<table>');
    3. $i = 0;
    4. while($i < 100) {
    5.     if(!($i % 3)) {
    6.         if($i > 0)
    7.             echo('</tr>');
    8.         echo('<tr>');
    9.     }
    10.     echo('<td>' . $i . '</td>');
    11.     ++$i;
    12. }
    13. if($i % 3) {
    14.     $needed = 3 - ($i - floor($i / 3) * 3);
    15.     for($j = 0; $j < $needed; ++$j)
    16.         echo('<td> </td>');
    17.     echo('</tr>');
    18. }
    19. echo('</table>');
    20. ?>
    Что-то такое, наверно
     
  4. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    А еще можно заместо тр использовать разделитель
    div class="separator"></div> а для него clear:both;
    Если это просто картинки то как бы с точки семантики данные не табличные поэтому таблица лишнее.
     
  5. iStory

    iStory Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    Спасибо ребята что откликнулись на помощь. Раньше ответить не мог высыпался а потом инет пропал только появился на связи. И так по делу рассмотрел ваши варианты они интересные но такое чувство что я не правильно задал вопрос и вы меня не совсем поняли. Играясь сегодня днем ломая голову я пришел к такому решению вывода изображений и названий раздела из базы.

    Код (PHP):
    1. <?
    2.  
    3. // Выбираем из таблицы "sws_cat" все поля.
    4. $result2 = mysql_query("SELECT * FROM sws_cat");
    5.  
    6. // Выводим все поля в цыкле до того момента пока не закончаться. 
    7. while($myrow = mysql_fetch_array ($result2)) 
    8.  
    9.                 {
    10. // Формируем вывод категорий с помощью "DIV" а это название категории и ее картинка, три картинки по горезонтали. 
    11.                 echo '<div style=" width:50; display:inline-block; vertical-align:top; margin:10px; ">';
    12.                 echo ''.$myrow["name_cat"].'<br>';
    13.                 echo '<img width="150" src="images/'.$myrow["cat_img"].'">';
    14.                 echo '</div>';  
    15.         
    16.                 }  
    17.  
    18. ?>
    Ребята подскажите со своей точки зрения я правильно делаю вывод или нет. Если нет подскажите как его сделать правильно. Спасибо.
     
  6. artem-Kuzmin

    artem-Kuzmin Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    809
    Симпатии:
    0
    style=" width:50; display:inline-block; vertical-align:top; margin:10px; "
    Заместо этого класс .
    Это
    echo '<div style=" width:50; display:inline-block; vertical-align:top; margin:10px; ">';
    echo ''.$myrow["name_cat"].'<br>';
    echo '<img width="150" src="images/'.$myrow["cat_img"].'">';
    echo '</div>';
    Я бы в один обединил $out
    А после вайла поставил бы print($out)
    Да и заместо mysql mysqli
    И еще num_rows>0, чтобы если записей ноль не сломалось все
     
  7. iStory

    iStory Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    4
    Симпатии:
    0
    То есть значит в общем я правильно делаю вывод если не считать твоих советов по доработке?