Предлагаю вашему вниманию задачку, которую затрудняюсь решить. Имеются таблицы с данными, в одной из таблиц имеется поле статус. Требуется вывести строки в зависимости от поля "статус" разными цветами.
<?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,
Сделал как посоветовали, но результат пока не изменился
Сделал как посоветовали, но результат пока не изменился

Спустя 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,
Цитата |
Ай, ну дык понятно же ![]() |
по моему sql запрос не полный... так как результат печатает 4 одинаковых строк повторно там где статус = 3, но без цвета как в условии сказано.
Skesh,
Цитата |
ошибки не выдает? там нужны кавычьки и кома с запятой? если так?: |
php ошибку не выдает
Спустя 3 часа, 4 минуты, 57 секунд (23.08.2011 - 14:25) inpost написал(а):
dozent
Значит у тебя в таблице 4 одинаковых строки
Просто так такое бы не печаталось. Введи запрос в мускуле и посмотри, какой результат у тебя выборки.
Если что, используй для связки LEFT JOIN & GROUP BY
Значит у тебя в таблице 4 одинаковых строки

Если что, используй для связки LEFT JOIN & GROUP BY