do, while

12
CyberX
На сайте с 08.03.2008
Offline
51
800

Подскажите что не так.


<?
$result2 = mysql_query ("SELECT * FROM history WHERE key='$id' ORDER BY date");
$myrow2 = mysql_fetch_array ($result2);
$key = $myrow2['key'];
echo ("<table width='1000px'><tr>");
$i=1;
do {
if ($myrow2['num'] == $num) { ($color = "class='green'"); } /* Интересен вот этот момент */
$myrow2['date']=date('d-m-Y', strtotime($myrow2['date']));
if ( ! ( $i % 10 ) ) { print "</tr><tr>";}
$i++;
printf ("<td><form id='edit%s' name='edit%s' method='post' action='select_history.php'>
<label>
<input name='id_client' type='hidden' value='$id_client' />
<input name='id' type='hidden' value='$key' />
<input name='num' id='num' type='hidden' value='%s' />
<input type='submit' $color name='edit%s' id='edit%s' value='%s' />
</label>
</form></td>", $myrow2['num'], $myrow2['num'], $myrow2['num'], $myrow2['num'], $myrow2['num'], $myrow2['date']); }
while ($myrow2 = mysql_fetch_array ($result2));
echo ("</tr></table>");
?>

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

Выхлоп


<table width='1000px'><tr><td><form id='edit125' name='edit125' method='post' action='select_history.php'>
<label>
<input name='id_client' type='hidden' value='70' />
<input name='id_animal' type='hidden' value='66' />
<input name='num' id='num' type='hidden' value='125' />
<input type='submit' name='edit125' id='edit125' value='26-02-2008' />
</label>
</form></td><td><form id='edit129' name='edit129' method='post' action='select_history.php'>

<label>
<input name='id_client' type='hidden' value='70' />
<input name='id_animal' type='hidden' value='66' />
<input name='num' id='num' type='hidden' value='129' />
<input type='submit' name='edit129' id='edit129' value='25-07-2008' />
</label>
</form></td><td><form id='edit132' name='edit132' method='post' action='select_history.php'>
<label>
<input name='id_client' type='hidden' value='70' />

<input name='id_animal' type='hidden' value='66' />
<input name='num' id='num' type='hidden' value='132' />
<input type='submit' name='edit132' id='edit132' value='25-07-2008' />
</label>
</form></td><td><form id='edit115' name='edit115' method='post' action='select_history.php'>
<label>
<input name='id_client' type='hidden' value='70' />
<input name='id_animal' type='hidden' value='66' />
<input name='num' id='num' type='hidden' value='115' />

<input type='submit' class='green' name='edit115' id='edit115' value='16-01-2009' />
</label>
</form></td><td><form id='edit120' name='edit120' method='post' action='select_history.php'>
<label>
<input name='id_client' type='hidden' value='70' />
<input name='id_animal' type='hidden' value='66' />
<input name='num' id='num' type='hidden' value='120' />
<input type='submit' class='green' name='edit120' id='edit120' value='16-01-2009' />
</label>

</form></td><td><form id='edit124' name='edit124' method='post' action='select_history.php'>
<label>
<input name='id_client' type='hidden' value='70' />
<input name='id_animal' type='hidden' value='66' />
<input name='num' id='num' type='hidden' value='124' />
<input type='submit' class='green' name='edit124' id='edit124' value='16-01-2009' />
</label>
</form></td><td><form id='edit133' name='edit133' method='post' action='select_history.php'>
<label>
<input name='id_client' type='hidden' value='70' />

<input name='id_animal' type='hidden' value='66' />
<input name='num' id='num' type='hidden' value='133' />
<input type='submit' class='green' name='edit133' id='edit133' value='16-01-2009' />
</label>
</form></td></tr></table>
Шустрый хостинг (http://www.colocat.ru) за нормальные деньги (Москва). 30 дней тестовый период. Рекомендую копирайтера aronskaya (/ru/users/73753). Отличные авторские тексты.
[Удален]
#1

CyberX, дайте догадаюсь, Попов ?

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

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#2

$color=""; перед if

Ufaweb
На сайте с 03.03.2008
Offline
182
#3

Хрен пойми о чем топик, но скажу одно:

echo ("<table width='1000px'><tr>");

не катит, культурнее писать так:

echo ('<table width="1000"><tr>');

Да, значение атрибута width имеет вид "число" или "число%".

bazetov
На сайте с 04.04.2008
Offline
7
#4
CyberX:
Подскажите что не так.

Эту строчку:

if ($myrow2['num'] == $num) { ($color = "class='green'"); }

Замените на эти три:


if ($myrow2['num'] == $num) {
$color = "class='green'";
} else {
$color = "class='something_another'";
}

За подсказку посмею обратиться к вам с советом (справедливо, не правда ли?):

"ознакомтесь вкратце со структурным программированием и теорией сложных технических систем"

CyberX
На сайте с 08.03.2008
Offline
51
#5

Ёхан Палыч, спасибо.

bazetov
На сайте с 04.04.2008
Offline
7
#6
CyberX:
Подскажите что не так.

Ещё вариант:

замените строку:

if ($myrow2['num'] == $num) { ($color = "class='green'"); }  /* Интересен вот этот момент */

на:

$color = ($myrow2['num'] == $num) ? "class='green'" : "";

Удачи!

CyberX
На сайте с 08.03.2008
Offline
51
#7

Зингельшухер, Извините, но я тут вроде не в угадай мелодию играл ?!

Спасибо за совет конечно. И Кстати вы не угадали. Всех благ вам.

bazetov
На сайте с 04.04.2008
Offline
7
#8
Ёхан Палыч:
$color=""; перед if

Двойное присваивание вызовет большую нагрузку на процессор вычислительного устройства, не правда ли?

$color = $some_expression ? 'something' : '';

будет работать в полтора раза быстрее, чем

$color = ''; 

if ($some_expression) {
$color = 'something';
}

CyberX
На сайте с 08.03.2008
Offline
51
#9

bazetov, Хоть и скорость мне не выжна в данной ситуации но за более рациональное решение спасибо. И вам удачи.

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#10

bazetov, да ну, какая скорость в данном случае, главное смысл: следить за переменной. А как следить - лучше книжки читать.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий