Page 1 of 1

retrieve and selected <UL><LI> using php / mysql /

Posted: Fri Dec 30, 2011 6:55 am
by whynot
Hi,
My output in html is :

Code: Select all

<uL><li id="B1"></li>
<li id="B2"></li>
<li id="B3"></li>
<li id="B4"></li>
<li id="B5"></li>
<li id="B6"></li>
<li id="B7"></li>
<li id="B8"></li>
<li id="B9"></li>
<li id="B10"></li>
<li id="B11"></li>
<li id="B12" class="active"></li>
<li id="B13" class="no"></li>
<li id="B14" class="no"></li>
<li id="B15" class="no"></li>
<li id="B16" class="no"></li>
<li id="B17" class="no"></li>
<li id="B18" class="no"></li>
<li id="B19" class="no"></li>
<li id="B20" class="no"></li>
</ul>

If MySQL query result is equal to `6`, then `<li>` tag with `id` equal to "`B12`" should have class "`active`". All the `<li>` elements occuring after this active element should have class "`no`".

This shows images of horizontal rating between `0` and `10` and between 0.5
Example : 0 .5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
In the example above elements from `0` to `5` will be blue, element `6` will be white and elements from `7` to `10` are black.

How could I generate this using PHP and/or MySQL?

Thanks, XXXX chirstmas XXXX

Re: retrieve and selected <UL><LI> using php / mysql /

Posted: Fri Dec 30, 2011 8:53 am
by Celauran
It's a little kludgy, but I think this is what you want.

Code: Select all

// Assuming $active is the value from SQL
$active_li = (int) 2 * $active;
echo "<ul>";
for ($i = 1; $i <= 20; $i++)
{
    echo "<li id=\"B{$i}\"";
    echo ($i == $active_li) ? " class=\"active\"" : "";
    echo ($i > $active_li) ? " class=\"no\"" : "";
    echo "></li>";
}
echo "</ul>";