|
|
|
| Есть обыкновенный вывод изображений по 6 шт. на страницу
<?
$result = mysql_query("SELECT * FROM `table` ORDER BY RAND() DESC LIMIT 6");
$all= mysql_num_rows($result);
if ($all>0)
{
while($arr= mysql_fetch_assoc($result))
{
echo "<a href='ссылка на картинку' title='".$arr['name']."' ><img src='ссылка на картинку' ></a>";
}
}
?>
|
Впорос:
Как производить замену отсутствующей картинки на картинку 1.jpeg, если в БД картинок меньше 6
т.е ряд из 6 картинок должен отображать существующие картинки в БД и если их меньше 6 то дополнять нехватающие изображения, картинкой 1.jpeg
делаю так:
<?
$result = mysql_query("SELECT * FROM `table` ORDER BY RAND() DESC LIMIT 6");
$all= mysql_num_rows($result);
while($arr= mysql_fetch_assoc($result))
{
if ($all>0)
{
echo "<a href='ссылка на картинку' title='".$arr['name']."' ><img src='ссылка на картинку' ></a>";
}
if ($all<=6)
{
for ($i=1; $i<=(6-$all); $i++)
{
echo "<img src='1.jpeg' >";
}
}
}
?>
|
НО! если картинка меньше по размерам чем 1.jpeg то 1.jpeg видно....как произвести замену подскажите | |
|
|
|
|
|
|
|
для: chexov
(20.04.2010 в 02:45)
| | Хм... может строки
<?php
echo "<a href='ссылка на картинку' title='".$arr['name']."' ><img src='ссылка на картинку' ></a>";
?>
|
поместить в массив и уже от количества элементов в нём отталкиваться? Это позволит исключить вложенные циклы. | |
|
|
|
|
|
|
|
для: cheops
(20.04.2010 в 02:53)
| |
<?
$result = mysql_query("SELECT * FROM `table` ORDER BY RAND() DESC LIMIT 6");
$all= mysql_num_rows($result);
while($arr= mysql_fetch_assoc($result))
{
$array[] = "<a href='ссылка на картинку' title='".$arr['name']."' ><img src='ссылка на картинку' ></a>";
for ($i=0; $i<>count($array); $i++)
{
//????????????
}
}
?>
|
А дальше? что-то не соображу как подставлять 1.jpeg и от циклов вложенных не избавился.... | |
|
|
|
|
|
|
|
для: chexov
(20.04.2010 в 02:57)
| | Я имею в виду вот что
<?
$result = mysql_query("SELECT * FROM `table` ORDER BY RAND() DESC LIMIT 6");
$all= mysql_num_rows($result);
while($arr= mysql_fetch_assoc($result))
{
$array[] = "<a href='ссылка на картинку' title='".$arr['name']."' ><img src='ссылка на картинку' ></a>";
}
for ($i=0; $i<6; $i++)
{
if(isset($array[$i])) echo $array[$i];
else echo "<img src='1.jpg' >";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(20.04.2010 в 03:03)
| | не нужен тут массив... да и цикл второй, по боьшому счету, тоже.
<?
$result = mysql_query("SELECT * FROM `table` ORDER BY RAND() DESC LIMIT" . ($n = 6) );
for(; $arr = mysql_fetch_assoc($result); --$n)
echo "<a href='ссылка на картинку' title='".$arr['name']."' ><img src='ссылка на картинку' ></a>";
echo str_repeat("<img src='1.jpg' >", $n);
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.04.2010 в 03:24)
| | Вариант Хеопса подошел , но возникла потребность изменить условие вывода
т.е выводится также 6 картинок на страницу, но выборка из БД осуществляется без LIMIT (всех записей), так вот, при таком условии
не работает, выводит только до 6! а нужно: только если меньше 6, заменять недостающие картинкой 1.jpeg, а если больше то вывод всех, по 6 на странице | |
|
|
|
|
|
|
|
для: chexov
(20.04.2010 в 04:32)
| | Если нужно выводить по 6, зачем тогда выбирать из базы все?
Почему вы уверены, что может быть 5, а не 4, 3...?
В хвост массива всегда можно добавить его копию, и вывести. | |
|
|
|
|
|
|
|
для: sim5
(20.04.2010 в 05:45)
| | Сделал так, если есть вариант попроще предлагайте:)
<?
if ($all<=6)
{
for ($i=0; $i<6; $i++)
{
if(isset($array[$i])) echo $array[$i];
else echo "<img src='1.jpg' >";
}
}
else
{
for ($i=0; $i<$all; $i++)
{
if(isset($array[$i])) echo $array[$i];
else echo "<img src='1.jpg' >";
}
}
?>
|
| |
|
|
|