Чётные и не чётные ID

Разработка своих веб-приложений и страничек

Чётные и не чётные ID

Сообщение Zver » 05 июл 2009, 14:35

Есть скрипт новостей, и два стиля. Нужно чтобы новости чередовались стилями. Т.е. нечётный ID - один стиль. Чётный другой. Помогите реализовать.
Zver
Активный участник
 
Сообщения: 1333
Зарегистрирован: 18 дек 2008, 18:51
Откуда: Саратов, Заводской

Re: Чётные и не чётные ID

Сообщение Zver » 05 июл 2009, 15:50

Ну так что, есть у кого идеи ?)
Zver
Активный участник
 
Сообщения: 1333
Зарегистрирован: 18 дек 2008, 18:51
Откуда: Саратов, Заводской

Re: Чётные и не чётные ID

Сообщение ibe » 05 июл 2009, 19:24

Собстно нужно сделать проверку на переменную id.
Изображение
Аватара пользователя
ibe
Активный участник
 
Сообщения: 893
Зарегистрирован: 31 мар 2009, 00:46

Re: Чётные и не чётные ID

Сообщение Alexsandrit » 05 июл 2009, 22:03

Возможно:
Код: Выделить всёРазвернуть
$is = $id/2;$isa = sprintf("%01.0f", $is);if($is == $isa){1 стиль}else{2 стиль}
Изображение
:roll:
Alexsandrit
Активный участник
 
Сообщения: 256
Зарегистрирован: 29 сен 2007, 16:47
Домен: http://proekts.vfose.ru/

Re: Чётные и не чётные ID

Сообщение Zver » 06 июл 2009, 10:38

Нет, спасибо. Разобрался сам. т.к. новостей выводится всего 5-ть, то для каждого сделал разные стили.
$sql="SELECT * FROM `news` ORDER BY `id` DESC ";
$result=mysql_query($sql);
$num_results=mysql_num_rows($result);
for ($i=0; $i<$num_results; $i+=5)
{
$row=mysql_fetch_array($result);
$id=$row["id"];
$text=$row["text"];
$short_text=$row["short_text"];
$publisher = $row["publisher"];
$date = $row["date"];
echo "<li>
<a href='/games.php?id=".$id."''><em><b><span>".$date."</span><br />".$short_text."</b></em></a>
</li>";

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
for ($i=1; $i<$num_results; $i+=5)
{
$row=mysql_fetch_array($result);
$id=$row["id"];
$text=$row["text"];
$short_text=$row["short_text"];
$publisher = $row["publisher"];
$date = $row["date"];
echo "
<li>
<a href='/games.php?id=".$id."' class = 'current'><em><b><span>".$date."</span><br />".$short_text."</b></em></a>
</li>";

}


и т.д....
Zver
Активный участник
 
Сообщения: 1333
Зарегистрирован: 18 дек 2008, 18:51
Откуда: Саратов, Заводской

Re: Чётные и не чётные ID

Сообщение zk » 06 июл 2009, 11:47

Ага, костыли это по нашему)

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

Просто представь ситуацию, тебе надо что-то поменять, и менять тебе придётся во всех блоках.

А само решение криво во всех отношениях. Если тебе нужно выбрать 5 новостей, не нужно выбирать все новости из базы, а потом в цикле отображать все, нужно сделать это в SQL запросе, с помощью LIMIT, после чего вывести их в обычном while по выбранным записям.

В случае если нужно чередование в выводе в цикле, просто делается некий ключ, например $key, и проверяется на каждой итерации:
Код: Выделить всёРазвернуть

$sql 
= "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 5 OFFSET 0";
$result = mysql_query($sql);

$key = false;
while ($row = mysql_fetch_array($result)) {
if ($key == false) { 
    $style 
= 'white';
    $key = true;
}
 
else 
{
    $style = 'black';
    $key = false;
}
 

echo 
'<div class="'.$style.'">'.$row[id].'</div>';

}
 
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru


Вернуться в PHP, HTML, CSS...

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5