Есть запрос к БД. Можно ли строки при определенных условиях окрашивать в один из выбранных цветов. Например некоторые записи имеют в одном поле индекс равный еденице, то эти строки нужно окрашивать например в зеленый цвет; с индексом равным 2 - красным, а 3-м - черным. Можно ли так сделать средствами РНР?
К условию запроса тоже можно привязать, но это лишняя сложность. А так просто выводишь их в таблицу (или множеством дивов) и пишешь свойство css: td:first-child {color: green}; td:nth-child(2) {color: red};
Вот именно, что надо привязать к условию запроса. Данные я вывожу в таблицу. Нужно, что бы результирующие строки окрасились в определенные цвета при определенном иде в каждой строке
Перед выводом в таблицу нужно проверить то, что будете выводить и если соответствует условию, при котором нужно окрасить, то окрасить, если правильно понял. Думаю, функций по работе со строками должно хватить с головой.
Димон, так ты уже всё знаешь, всё решил, придумал, по какому критерию окрашивать... Если после запроса твои данные будут в массиве и если там будет этот ID, то... тоже знаешь, условие if..else или switch, или вообще ID использовать как индексы массива с цветами.
Mr. T Выводятся все записи из таблицы, выводятся массивом. Как их потом проверять, если с идом=1 может быть сотня записей, и другими идами тоже. Для того и хочу их окрасить по идам, что бы визуально (глядя на результат) было видно какая запись с каким идом идет
Например, Код (Text): foreach($arr as $val){ $color='000'; switch($val['id']){ case 1: $color='f00'; break; default: } echo '<td style="color:#',$color,';">',$val['text'],'</td>',"\n"; }
YSandro То то и оно, что не пойму куда и чего привязать. Допустим есть запрос: Код (Text): $sql = "SELECT * FROM `table` WHERE бла бла бла GROUP BY бла бла бла "; $result = mysql_query($sql)or die ("Query failed: " .mysql_error()); while ($row = mysql_fetch_array ($result)) {echo "<tr>"; echo "<td align='left'><a href='sost_zakaz.php?zakaz_id=",$row['zakaz_id'],"'><img align='right' hspace='2' width='16' height='16' src='img/rabotau' border='0' width='155' height='119' alt='Работа по заказу' title='Работа по заказу' /></a></td>"; echo " <td><h6>",$row['zakaz_id'],"</td> <td><h6>",$row['date_zakaz'],"</td> <td><h6>",$row['FIO'],"</td> <td><h6>",$row['adress'],"</td> <td><h6>",$row['telephone'],"</td> <td><h6>",$row['avto_name'],"</td> <td><h6>",$row['avto_model'],"</td> <td><h6>",$row['gos_numer'],"</td> <td><h6>",$row['zayavleno'],"</td> <td><h6>",$row['sotr_fio'],"</td>"; echo "</tr>"; } echo "</table>"; } Как мне тут с цветом влезти?
Забыл еще одно поле показать: $row['sost_id']. Именно по этому полю и нужно окрашивать результат. Поле имеет всего три состояния 1,2,3.
Ну осталось перед echo "<tr>..." поставить условие, Код (Text): $color='000'; if($row['sost_id']==1){ $color='e99'; }elseif($row['sost_id']==2){ $color='9e9'; }... echo "<tr style='color:#{$color}'>";
YSandro Извини конечно, но я не понял. Получается, что при каждом $row['sost_id'] будет выводится либо 1, или 2, или3. Т.е. всего три строчки кода?
Аааа, вот теперь понял! Спасибо попробую, очень интересно!!! Завтра вечером отпишусь, а сейчас спать, всем огромное спасибо, особенно YSandro
Что то меня смущает отсутствие кавычек. Может так надо? Но все равно не работает: Код (Text): echo "<tr style='color:#",$color,"'>"; Текст не окрашивается
Димон цветов много разных? [css] tr.color1 td {color: green;} tr.color2 td {color: red;}[/css] HTML: <tr class='color1'><td>...
YSandro Получается следующее: Цвет текста весь (по всем строкам таблицы) окрашивается в первый выбранный цвет.
Тут уже предпочтения программера, и так будет работать, и так. Т.к. строка "<tr style='color:#{$color}'>" в двойных кавычках, то будет подставлена переменная $color, а фигурные скобки удалятся. Так лично мне нагляднее. Приведи ещё раз твой исправленный фрагмент кода, где выводится html.
Димон PHP: <?php $sql = "SELECT * FROM `table` WHERE бла бла бла GROUP BY бла бла бла"; $result = mysql_query($sql)or die ("Query failed: " .mysql_error()); echo '<style type="text/css"> tr.sost_1 { background-color: red; } tr.sost_2 { background-color: blue; } tr.sost_3 { background-color: green; } </style>'; echo '<table>'; while ($row = mysql_fetch_array ($result)){ echo '<tr class="sost_'.$row['sost_id'].'">'; echo '<td align="left"><a href="sost_zakaz.php?zakaz_id='.$row['zakaz_id'].'"><img align="right" hspace="2" width="16" height="16" src="img/rabotau" border="0" width="155" height="119" alt="Работа по заказу" title="Работа по заказу" /></a></td>'; echo ' <td><h6>'.$row['zakaz_id'].'</td> <td><h6>'.$row['date_zakaz'].'</td> <td><h6>'.$row['FIO'].'</td> <td><h6>'.$row['adress'].'</td> <td><h6>'.$row['telephone'].'</td> <td><h6>'.$row['avto_name'].'</td> <td><h6>'.$row['avto_model'].'</td> <td><h6>'.$row['gos_numer'].'</td> <td><h6>'.$row['zayavleno'].'</td> <td><h6>'.$row['sotr_fio'].'</td> </tr>'; } echo '</table>';
Gromo В данном случае, все ячейки таблицы окрашиваются в красный цвет. Текст остается черным. А в строке: Код (Text): echo '<tr class="sost_'.$row['sost_id'].'">'; ошибка с кавычками
HTML: Код (Text): $sql = "SELECT * FROM `sotrudniki`,`zakaz`,`avto_name`,`avto_model`,`month`,`sost` WHERE `sotrudniki`.`Sotrudnik_id`=`zakaz`.`Sotrudnik_id` AND `zakaz`.`avto_name_id`=`avto_name`.`avto_name_id` AND `zakaz`.`avto_model_id`=`avto_model`.`avto_model_id` GROUP BY `zakaz`.`zakaz_id` "; $result = mysql_query($sql)or die ("Query failed: " .mysql_error()); echo '<style type="text/css"> tr.sost_1 { background-color: red; }; tr.sost_2 { background-color: blue; }; tr.sost_3 { background-color: green; }</style>'; $num_rows = mysql_num_rows($result); echo " Всего получено $num_rows записи(ей)\n"; echo "<table border='1' WIDTH='100%'>"; echo "<tr bgcolor='#2A1FAA' border='1' style='border:dashed' bordercolor='#2A1FAA' height:'10px'>"; echo " <th></th> <th><h4 style='color:#FFF'>Номер заказа</th> <th><h4 style='color:#FFF'>Дата заказа</th> <th><h4 style='color:#FFF'>Заказчик</th> <th><h4 style='color:#FFF'>Адрес заказчика</th> <th><h4 style='color:#FFF'>Телефон заказчика</th> <th><h4 style='color:#FFF'>Марка автомобиля</th> <th><h4 style='color:#FFF'>Модель автомобиля</th> <th><h4 style='color:#FFF'>Гос. номер</th> <th><h4 style='color:#FFF'>Заявлено</th> <th><h4 style='color:#FFF'>Принял заказ</th>"; echo "</tr>"; while ($row = mysql_fetch_array ($result)) { $color='000'; if($row['sost_id']=1){ $color='C00'; } else if($row['sost_id']=2){ $color='390'; } else if($row['sost_id']=3){ $color='000'; } echo "<tr style='color:#{$color}'>"; echo "<td align='left'><a href='sost_zakaz.php?zakaz_id=",$row['zakaz_id'],"'><img align='right' hspace='2' width='16' height='16' src='img/rabotau' border='0' width='155' height='119' alt='Работа по заказу' title='Работа по заказу' /></a></td>"; echo " <td>",$row['zakaz_id'],"</td> <td>",$row['date_zakaz'],"</td> <td>",$row['FIO'],"</td> <td>",$row['adress'],"</td> <td>",$row['telephone'],"</td> <td>",$row['avto_name'],"</td> <td>",$row['avto_model'],"</td> <td>",$row['gos_numer'],"</td> <td>",$row['zayavleno'],"</td> <td>",$row['sotr_fio'],"</td>"; echo "</tr>"; } echo "</table>"; }