Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод не четных id другим цветом / 25 сообщений из 25, страница 1 из 1
28.02.2014, 22:58
    #38575748
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
Добро время суток.
Помогите мне пожалуйста.
Хочу сделать, что бы если id=2 то выводить другой class
например:
Елси id=2 и т.д. четное то выводить в div класс class='background'
А иначе выводить div class='background1'

Вот везде нашел на примере с таблицами , но мне такой способ не годится!

Помогите люди добрые
...
Рейтинг: 0 / 0
28.02.2014, 23:20
    #38575761
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleДобро время суток.
Помогите мне пожалуйста.
Хочу сделать, что бы если id=2 то выводить другой class
например:
Елси id=2 и т.д. четное то выводить в div класс class='background'
А иначе выводить div class='background1'
так?
Код: php
1.
echo '<div class="'.($id%2==0)?'background':'background1'.'">';
...
Рейтинг: 0 / 0
28.02.2014, 23:47
    #38575769
4657
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
ILLHEAD,

А еще лучше все энергопотребляющие телодвижения с четными/нечетными ячейками на стороне клиента выполнять.
...
Рейтинг: 0 / 0
01.03.2014, 15:30
    #38576029
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
ILLHEAD,

не совсем.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$post1=mysql_query("SELECT * FROM data");
$post2=mysql_fetch_array ($post1);

 $res = mysql_query("SELECT COUNT(*) FROM data");
 $row = mysql_fetch_row($res);
 $total = $row[0]; // всего записей

$a=$total;
do {
if ($a%2)
{echo "<div class='background' id='{$post2['id']}'>не четное</div>";}
else
{echo "<div class='inverse-section' id='{$post2['id']}'>четное</div>";}
;}
while ($post2=mysql_fetch_array($post1));
?>


но все равно не работает :-(
...
Рейтинг: 0 / 0
01.03.2014, 16:29
    #38576059
2800
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleILLHEAD,

не совсем.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$post1=mysql_query("SELECT * FROM data");
$post2=mysql_fetch_array ($post1);

 $res = mysql_query("SELECT COUNT(*) FROM data");
 $row = mysql_fetch_row($res);
 $total = $row[0]; // всего записей

$a=$total;
do {
if ($a%2)
{echo "<div class='background' id='{$post2['id']}'>не четное</div>";}
else
{echo "<div class='inverse-section' id='{$post2['id']}'>четное</div>";}
;}
while ($post2=mysql_fetch_array($post1));
?>


но все равно не работает :-(
А должно?
Код: php
1.
2.
3.
$total = $row[0]; // всего записей
$a=$total; // всего записей
if ($a%2) // всего записей
...
Рейтинг: 0 / 0
01.03.2014, 16:34
    #38576061
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracle,

скобки хотела
Код: php
1.
2.
3.
4.
<?php
for ($id=1;$id<=10;$id++) {
	echo '<div style="color:'.(($id%2==0)?'red':'blue').'">1</div>';
}

_http://krsstroy.freeopti.ru/test-chet-nechet.php
...
Рейтинг: 0 / 0
01.03.2014, 16:38
    #38576064
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
do {
if ($post2['id']%2)
{echo "<div class='background' id='{$post2['id']}'>
<div class='container inner-background'>
<div class='col-md-6'>
<h1>{$post2['name']}</h1>

<hr />
<p class='lead'> {$post2['text']}
<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>

</div>
</div>
</div>";}

else{
echo "<div class='inverse-section' id='{$post2['id']}'>
<div class='container inner-background'>
<div class='col-md-6'>
<h1>{$post2['name']}</h1>

<hr />
<p class='lead'> {$post2['text']}
<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>

</div>
</div>
</div>";
;}
;}
вроде бы получилось, вот только тебе не могу покать, как сделать, что бы первую запись он пропускал, я ее отдельно вывести хочу, а потом пошел счет и делал как надо!
...
Рейтинг: 0 / 0
01.03.2014, 17:00
    #38576071
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleкак сделать, что бы первую запись он пропускал, я ее отдельно вывести хочу, а потом пошел счет и делал как надо!попробуйте до DO-WHILE сделать $first_post_id=mysql_fetch_array($post2)
далее - DO-WHILE , и уже где/когда надо раскурочите :) $first_post_id
...
Рейтинг: 0 / 0
01.03.2014, 18:49
    #38576101
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
Честно говоря, чё то не чего не понял!
...
Рейтинг: 0 / 0
01.03.2014, 19:59
    #38576132
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleЧестно говоря, чё то не чего не понял!ошибся. сорри
...
Рейтинг: 0 / 0
01.03.2014, 20:17
    #38576143
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?
$post1 = mysql_query("SELECT * FROM data");
$post2_1 = mysql_fetch_array ($post1); // первая запись, которую потом выводите "по другому"

while ($post2=mysql_fetch_array($post1)) {
 echo "<div class='".(($post2['id']%2==0)?'inverse-section':'background')."' id='".$post2['id']."'>".$post2['id']."</div>";
}

// тут, или в другом месте, выводите $post2_1
?>

имел ввиду что перед циклом сохранить отдельно первую запись, которую где надо вывести
...
Рейтинг: 0 / 0
01.03.2014, 21:14
    #38576157
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
ILLHEAD,

Большое спасибо, выручили

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
$post1=mysql_query("SELECT * FROM data");
$post2_1=mysql_fetch_array($post1);
$post2=mysql_fetch_array ($post1);

echo "<div class='background' id='".$post2_1['id']."'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2_1['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2_1['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";

#while ($post2=mysql_fetch_array($post1))
#$i=$post2['id'];
#$first_post_id=mysql_fetch_array($post2);
 #$res = mysql_query("SELECT COUNT(*) FROM data");
 #$row = mysql_fetch_row($res);
 #$total = $row[0]; // всего записей
#echo $total;
#$a=$total;

do {
echo "<div class='".(($post2['id']%2==0)?'inverse-section':'inter')."' id='".$post2['id']."'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";}
while ($post2=mysql_fetch_array($post1));
?>


Теперь все работает так как хотелось!
...
Рейтинг: 0 / 0
01.03.2014, 22:01
    #38576178
5797
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleILLHEAD,

Большое спасибо, выручили

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
$post1=mysql_query("SELECT * FROM data");
$post2_1=mysql_fetch_array($post1);
$post2=mysql_fetch_array ($post1);

echo "<div class='background' id='".$post2_1['id']."'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2_1['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2_1['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";

#while ($post2=mysql_fetch_array($post1))
#$i=$post2['id'];
#$first_post_id=mysql_fetch_array($post2);
 #$res = mysql_query("SELECT COUNT(*) FROM data");
 #$row = mysql_fetch_row($res);
 #$total = $row[0]; // всего записей
#echo $total;
#$a=$total;

do {
echo "<div class='".(($post2['id']%2==0)?'inverse-section':'inter')."' id='".$post2['id']."'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";}
while ($post2=mysql_fetch_array($post1));
?>


Теперь все работает так как хотелось!
Работать "правильно" будет до тех пор, пока не удалят пару записей из таблицы.
...
Рейтинг: 0 / 0
01.03.2014, 22:05
    #38576179
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
5797,
блин, чё то я об этом не подумал :-(
...
Рейтинг: 0 / 0
01.03.2014, 22:06
    #38576180
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
ILLHEAD,

Наверное я остановлюсь на варианте
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<?PHP

$post1=mysql_query("SELECT * FROM data");
$post2_1=mysql_fetch_array($post1);
$post2=mysql_fetch_array ($post1);

echo "<div class='background' id='".$post2_1['id']."'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2_1['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2_1['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";

do {
if ($post2['id']%2)
{echo "<div class='inter' id='{$post2['id']}'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";}
else
{echo "<div class='inverse-section' id='{$post2['id']}'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";}
;}
while ($post2=mysql_fetch_array($post1));
?>
...
Рейтинг: 0 / 0
01.03.2014, 22:09
    #38576182
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracle,

а что последний (ваш) вариант меняет?

надо сделать в запросе СВОЮ нумерацию и ее "модулить" )

если не знаете как сделать - подскажу
...
Рейтинг: 0 / 0
01.03.2014, 22:16
    #38576185
7901
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleвроде бы получилось, вот только тебе не могу покать, как сделать, что бы первую запись он пропускал, я ее отдельно вывести хочу, а потом пошел счет и делал как надо !
Ну так выводите первую запись как надо, а затем заведите счетчик инкрементируя его после вывода каждой записи.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
echo "<div class='background' id='".$post2_1['id']."'>
...
$counter = 0;
do
{
   if ($counter%2 == 0) {...}
   else {...}
   ...
   $counter++;
}
...
...
Рейтинг: 0 / 0
01.03.2014, 23:45
    #38576210
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleILLHEAD,

Наверное я остановлюсь на варианте
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<?PHP

$post1=mysql_query("SELECT * FROM data");
$post2_1=mysql_fetch_array($post1);
$post2=mysql_fetch_array ($post1);

echo "<div class='background' id='".$post2_1['id']."'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2_1['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2_1['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";

do {
if ($post2['id']%2)
{echo "<div class='inter' id='{$post2['id']}'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";}
else
{echo "<div class='inverse-section' id='{$post2['id']}'>
	<div class='container inner-background'>
		<div class='col-md-6'>
			<h1>{$post2['name']}</h1>
			
			<hr />
			<p class='lead'> {$post2['text']}
			<a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
			
		</div>
	</div>
</div>";}
;}
while ($post2=mysql_fetch_array($post1));
?>



Везёт Вам с работодателем )) Если бы я так писал, меня давно бы уволили уже (хотя уж не знаю везёт ли... раз не заставляют развиваться)

По-нормальному этот код будет выглядеть так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?php
$posts=mysql_query("SELECT * FROM data");
$rows_num = mysql_num_rows($posts);
for($i=0; $i<$rows_num; $i++){
  $post = mysql_fetch_array($posts);
  ?>
  <div class='<?= ($i==0) ? 'background' : ($i%2==0 ? 'inter' : 'inverse-section' ) ?>' id='<?=$post['id']?>'>
    <div class='container inner-background'>
      <div class='col-md-6'>
        <h1><?=$post['name']?></h1>
        
        <hr />
        <p class='lead'> <?=$post['text']?>
        <a href='#' class='btn btn-white'><i class='fa fa-arrow-circle-o-right'></i>Подробнее</a>
        
      </div>
    </div>
  </div>
  <?php
}
?>



Это выводит строки через одну с требуемым стилем, при этом для первой строки (нулевой, если быть точнее) будет выведен свой, особой, стиль.
А зачем три раза дублировать тот же код и получать результат запроса в трёх местах - это мне вообще не понятно ) Если Ваш проект в таком виде достанется кому-то в наследство... Вам лучше стереть все свои контакты ))

P.S. Код не проверял. Возможны неточности и мелкие ошибки.. Но думаю суть понятна. И кстати... советую, если дело в выводе других стилей для элементов с номерами заданными линейной функцией, посмотреть в сторону css. На псевдоклассы (в частности nth-child).
...
Рейтинг: 0 / 0
03.03.2014, 16:44
    #38577054
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
Програмёр,

Да я вообще то подумывал, что в каждой из трех будет везде разный class
...
Рейтинг: 0 / 0
03.03.2014, 17:13
    #38577075
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracle,

вариант без счетчика в пхп-скрипте
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?
$post1 = mysql_query("SELECT t1.*, (SELECT SUM(1) FROM data AS t2 WHERE t2.id<=t1.id) AS recnum FROM data AS t1");
$post2_1 = mysql_fetch_array ($post1); // первая запись, которую потом выводите "по другому"

while ($post2=mysql_fetch_array($post1)) {
 echo "<div class='".(($post2['recnum']%2==0)?'inverse-section':'background')."' id='".$post2['id']."'>".$post2['id']."</div>";
}

// тут, или в другом месте, выводите $post2_1
?>
...
Рейтинг: 0 / 0
03.03.2014, 17:16
    #38577077
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
зы: поправочка. надо отсортировать:
Код: sql
1.
SELECT t1.*, (SELECT SUM(1) FROM data AS t2 WHERE t2.id<=t1.id) AS recnum FROM data AS t1 ORDER BY id
...
Рейтинг: 0 / 0
03.03.2014, 20:59
    #38577259
4161
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracleПрограмёр,

Да я вообще то подумывал, что в каждой из трех будет везде разный class
Херня какая-то! Вы для начала определитесь, что надо, а потом вопросы правильно задавайте.
...
Рейтинг: 0 / 0
18.04.2014, 08:37
    #38618267
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
ILLHEAD,

А если попробовать выводить с 3 записи?
...
Рейтинг: 0 / 0
18.04.2014, 08:57
    #38618280
minioracle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracle,

Все разобрался, спасибо БОЛЬШОЕ!
...
Рейтинг: 0 / 0
18.04.2014, 11:33
    #38618492
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод не четных id другим цветом
minioracle,

если касается только стилевого оформления, то мне кажется проще было через css
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<style>
.css-style-with-color:nth-child(3n+2){background-color:red;}
.css-style-with-color:nth-child(3n+1){background-color:blue;}
.css-style-with-color:nth-child(3n){background-color:yellow;}
</style>
<div class="css-style-with-color">1</div>
<div class="css-style-with-color">2</div>
<div class="css-style-with-color">3</div>
<div class="css-style-with-color">4</div>
<div class="css-style-with-color">5</div>
<div class="css-style-with-color">6</div>
<div class="css-style-with-color">7</div>
<div class="css-style-with-color">8</div>
<div class="css-style-with-color">9</div>
<div class="css-style-with-color">10</div>
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод не четных id другим цветом / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]