Kredov long

вывод картинок

Тема в разделе "PHP", создана пользователем LOMANI, 18 мар 2013.

  1. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    в тексте новости выводятся картинки таким образом:
    Код:
    	  <img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict1'] ?>" title="<?= $page['pict_alt1'] ?>" alt="<?= $page['pict_alt1'] ?>">
    		<br /><img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict2'] ?>" title="<?= $page['pict_alt2'] ?>" alt="<?= $page['pict_alt2'] ?>">
    		<br /><img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict3'] ?>" title="<?= $page['pict_alt3'] ?>" alt="<?= $page['pict_alt3'] ?>">
    		<br /><img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict4'] ?>" title="<?= $page['pict_alt4'] ?>" alt="<?= $page['pict_alt4'] ?>">
    		<br /><img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict5'] ?>" title="<?= $page['pict_alt5'] ?>" alt="<?= $page['pict_alt5'] ?>">
    		<br /><img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict6'] ?>" title="<?= $page['pict_alt6'] ?>" alt="<?= $page['pict_alt6'] ?>">
    		<br /><img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict7'] ?>" title="<?= $page['pict_alt7'] ?>" alt="<?= $page['pict_alt7'] ?>">
    		
    путь картинки (название) хранится в бд в таблице tizer ... столбец pict1, pict2 и т.д.

    получение картинки:
    PHP:
    function get_tizer_page($link) {
            return 
    $this->db->select('name, text, title, pict, pict_alt, pict1, pict_alt1, pict2, pict_alt2, pict3, pict_alt3, pict4, pict_alt4, pict5, pict_alt5, pict6, pict_alt6, pict7, pict_alt7, keywords, description')->from('tizer')->where('link'$link)->where('date <',date('Y-m-d H:i:s'))->limit(1)->get()->row_array();
        }
    задача:
    если название картинки в БД отсутствует т.е. её нет и картинка на сайте выводится таким образом
    <img class="tizer_info" src="http://www.ххх.ru/images/tizer/" title="" alt="">
    то она не должна выводится или дожна заменятся на другую картинку которой не видно или должен добавляться style="display: none;"

    з.ы. пытался через if(!isset($page['pict1'])) $page['pict1']=""; но как то не получилось
     
  2. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    а не проще ту которая отсутствует вообще не выводить?
    --- добавлено: Mar 18, 2013 4:47 PM ---
    PHP:
    <?php
    for ($i=1;$i<8;$i++) {
    if (
    $page['pict'.$i] !== '') { ?>
    <img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict'.$i?>" title="<?= $page['pict_alt'.$i?>" alt="<?= $page['pict_alt'.$i?>">
    <?php if ($i !=='8') { ?><br /> <?php  }}}?>  убираем последний <br>
     
    LOMANI нравится это.
  3. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    ошибка в for ($i=;$i<8;$i++) {
    + отсутствует ?>
     
  4. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    for($i=1;$i<8;$i++){ здесь единица отсутствовала
    поправил
     
    LOMANI нравится это.
  5. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    отлично работает, спасибо
    --- добавлено: Mar 18, 2013 5:05 PM ---
    а если у меня не 7 картинок, а 15 .... нужно прописать $i<16 ... или 15 ?
     
  6. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
     
  7. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    а если так?
    Код:
    <img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict_ferst'] ?>" title="<?= $page['pict_alt_ferst'] ?>" alt="<?= $page['pict_alt_ferst'] ?>">
    --- добавлено: Mar 18, 2013 8:00 PM ---
    всё... заработало... сам налажал, забыл запросить в параметр из БД
     
  8. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    делай названий массив и перебирай в цикле.
    PHP:
    <?php
    $b
    =array('first', ..... ,'last');
    $acount($b);
    //$a = количество картинок +1;  если первая картинка имеет номер "1", если "0" то $a = количество картинок;
    for ($i=0;$i<$a;$i++) {
    if (
    $page['pict_'.$b[$i]] !== '') { ?>
    <img class="tizer_info" src="http://www.ххх.ru/images/tizer/<?= $page['pict_'.$b[$i]] ?>" title="<?= $page['pict_alt_'.$b[$i]] ?>" alt="<?= $page['pict_alt_'.$b[$i]] ?>">
    <?php if ($i !== $a-1) { ?><br /> <?php  }}}?>  убираем последний <br>
     
  9. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    как спрятать целый набор картинок?

    Код:
    <center>
    <ul id="ferst" class="jcarousel-skin-tango">
    <?php
    for ($i=1;$i<16;$i++) {
    if ($page['pict'.$i] !== '') { ?>
    <li>
    		<a href="http://www.ххх.ru/images/tizer/<?= $page['pict'.$i] ?>" rel="lightbox-preview" title="<?= $page['pict_alt1'] ?>" class="fancybox">
    			<img width="150" height="150" src="http://www.ххх.ru/images/tizer/<?= $page['pict'.$i] ?>" title="<?= $page['pict_alt1'] ?>" alt="<?= $page['pict_alt1'] ?>">
    		</a>
    	</li>
    <?php  }}?>
     
      </ul>
    </center>
    спрятать весь этот код если отсутствуют записи в БД в полях pict1, pict2, ......, pict14, pict15
     
  10. saxum2010

    saxum2010

    Регистрация:
    6 фев 2013
    Сообщения:
    111
    Симпатии:
    34
    а разве так не работает??

    PHP:
    <center>
    <ul id="ferst" class="jcarousel-skin-tango">
    <?php
    for ($i=1;$i<16;$i++) {
    if (
    $page["pict$i"]) { ?>
    <li>
            <a href="http://www.ххх.ru/images/tizer/<?= $page['pict'.$i?>" rel="lightbox-preview" title="<?= $page['pict_alt1'?>" class="fancybox">
                <img width="150" height="150" src="http://www.ххх.ru/images/tizer/<?= $page['pict'.$i?>" title="<?= $page['pict_alt1'?>" alt="<?= $page['pict_alt1'?>">
            </a>
        </li>
    <?php  }}?>
     
      </ul>
    </center>[/code]
     
  11. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    так работает.... только работает для каждой картинки в отдельности, а нужно скрыть весь комплекс если нету картинок ..... т.е. на данный момент если нет картинок показывается пустая галерея со стрелками прокрутки картинок... а нужно чтоб и этого то же не показывало
    --- добавлено: 28 мар 2013 в 10:09 ---
    в принцепи если продублировать
    <?php
    for ($i=1;$i<16;$i++) {
    if ($page["pict$i"]) { ?>
    .................................
    <?php }}?>

    вроде работает так как нужно, но интересно - это оптимальный вариант? может есть что то лучше?
     
  12. saxum2010

    saxum2010

    Регистрация:
    6 фев 2013
    Сообщения:
    111
    Симпатии:
    34
    еще как вариант так

    PHP:
    <center>
     
    <?php
    $j 
    1;
    for (
    $i=1;$i<16;$i++) {
    if (
    $page["pict$i"]) {
    if(
    $j == 1){ print '<ul id="ferst" class="jcarousel-skin-tango">';}
    ?>
    <li>
            <a href="http://www.ххх.ru/images/tizer/<?= $page['pict'.$i?>" rel="lightbox-preview" title="<?= $page['pict_alt1'?>" class="fancybox">
                <img width="150" height="150" src="http://www.ххх.ru/images/tizer/<?= $page['pict'.$i?>" title="<?= $page['pict_alt1'?>" alt="<?= $page['pict_alt1'?>">
            </a>
        </li>
    <?php 
    if($j == 1){ print '</ul>';}
    $j ++;
    }}
    ?>
     
    </center>