[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод строки таблицы mysql (другим цветом)
dozent
Доброго времени суток всем,

Предлагаю вашему вниманию задачку, которую затрудняюсь решить. Имеются таблицы с данными, в одной из таблиц имеется поле статус. Требуется вывести строки в зависимости от поля "статус" разными цветами.

    <?php
include_once("../dbconnection.php");

$query = 'SELECT s1.`full_name`, s2.`address`, s2.`job_place` FROM `peoples` s1, `jobs` s2 WHERE s1.`pid`=s2.`jid` AND s1.`status`="1" || s1.`status`="3"';
$result = mysql_query($query) or die("<b>Query failed:</b> " . mysql_error());
?>
<table>
<
tr>
<
td>ФИО</td>
<
td>Адрес</td>
<
td>Место работы</td></tr>
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
if (($line['status'];)=="3") {
print "<tr bgcolor='#FF0000'>\n";
}elseif (($line['status'];)=="1") {
print "<tr bgcolor='#00FF00'>\n";
}
foreach ($line as $col_value) {
echo "<td class='queryTdBody'>".$col_value."</td>\n";
}
echo "</tr>\n";
}
?>
</table>


У кого нибудь есть опыт практики с такой ситуацией?



Спустя 6 минут, 4 секунды (23.08.2011 - 09:07) kirik написал(а):
      while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$color = '#00FF00'; // цвет по умолчанию
switch($line['status']) {
case 2: // если статус == 2
$color = '#000';
break;
case 3: // если статус == 3
$color = '#FF0000';
break;
}
print "<tr bgcolor='{$color}'>\n";
foreach ($line as $col_value) {
echo "<td class='queryTdBody'>".$col_value."</td>\n";
}
echo "</tr>\n";
}

Спустя 28 минут, 25 секунд (23.08.2011 - 09:35) dozent написал(а):
kirik,

Сделал как посоветовали, но результат пока не изменился sad.gif

Спустя 8 минут, 49 секунд (23.08.2011 - 09:44) kirik написал(а):
Цитата (dozent @ 23.08.2011 - 02:35)
результат пока не изменился

Ай, ну дык понятно же :) В запросе нужно доставать этот самый статус:
SELECT s1.`full_name`, s2.`address`, s2.`job_place`, s1.`status` AS `status` FROM `peoples` s1, `jobs` s2 WHERE s1.`pid`=s2.`jid` AND s1.`status`="1" || s1.`status`="3"

Спустя 38 минут, 33 секунды (23.08.2011 - 10:23) Skesh написал(а):
а у тя вот здесь вот:
 if (($line['status'];)=="3")
ошибки не выдает? там нужны кавычьки и кома с запятой? если так?:
 if ($line['status']=="3")
или даже так
 if ($line['status']==3)
без кавычек.

Спустя 7 минут, 7 секунд (23.08.2011 - 10:30) neadekvat написал(а):
А лучше так:
if ($line['status'] == 3)

с пробелами.

Спустя 50 минут, 13 секунд (23.08.2011 - 11:20) dozent написал(а):
kirik,

Цитата
Ай, ну дык понятно же smile.gif В запросе нужно доставать этот самый статус:


по моему sql запрос не полный... так как результат печатает 4 одинаковых строк повторно там где статус = 3, но без цвета как в условии сказано.

Skesh,

Цитата
ошибки не выдает? там нужны кавычьки и кома с запятой? если так?:


php ошибку не выдает

Спустя 3 часа, 4 минуты, 57 секунд (23.08.2011 - 14:25) inpost написал(а):
dozent
Значит у тебя в таблице 4 одинаковых строки smile.gif Просто так такое бы не печаталось. Введи запрос в мускуле и посмотри, какой результат у тебя выборки.
Если что, используй для связки LEFT JOIN & GROUP BY
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.