Привет знатоки! Помогите пож. с проблемой! :
Есть файл index.html:
...
HTML |
<form action="index.php" method="post" name="month1"> <input name="month[]" type="checkbox" value = "Январь"> <strong> Январь</strong><br> <input name="month[]" type="checkbox" value = "Февраль"> <strong> Февраль</strong><br> <input name="month[]" type="checkbox" value = "Март"> <input name="shape" type="submit" Сформировать">
|
Обработчик index.php:
...//соединяемся с БД Оракл
...//селектим данные
PHP |
<TABLE cellspacing="0" cellpadding="0" alt="" border="0" class="checklist"> <?php if ($_POST['month']) echo' <TR> <Th width=80>Договор</B></Th> <Th width=300><B>Организация</B></Th>'; else echo '<h3>Ни один месяц не отмечен!';?> <?php if ($_POST['month']) {$month = $_POST['month']; foreach($month as $value) echo '<Th width=80>'.$value.'</Th>';}?> <?php echo '</TR>'; ?> <?php while($row = oci_fetch_array($stmt)){ ?>
<TR> <?php if ($_POST['month']) { echo '<TD align= right >'.$row['DOG'].'</TD>'; echo '<TD align= left>'.$row['PUCH'].'</TD>'; }?> <?[color=red]php for ($i=1; $i<=9; $i++) {echo '<TD align= right><b>'.number_format($row['C'.$i], 2, ',', ' ').'</b></TD>'; } ?> [/color] //все месяцы выводит из БД </TR> <?php } ?> |
Проблема в том, что
1) как сделать так, чтобы по отмеченным чекбоксам выводить данные из БД, т.е если я отметил январь то выведи только январь, если отметил февраль, март то выводи их? Шапки прекрасно
работают при помощи foreach.
Спустя 5 дней, 6 часов, 48 минут, 27 секунд (11.08.2009 - 16:58) Bizzer написал(а):
Ну самое главное ты как раз и не показал.. (SQL запрос)
В зависимости от выбранных месяцев нужно генерировать разные запросы.
К примеру так:
PHP |
$months_str = ''; $months = isset($_POST['month'])?$_POST['month']:array();
foreach ($months as $current_month) { $current_month = (int)$current_month;
if ($months_str !== '') { $months_str .= ','; }
if ($current_month>=1 && $current_month<=12) { $months_str .= $current_month; } }
if ($months_str==='') { //Месяцы не выбраны - нечего показывать $contracts = array(); } else { //Отбираем договоры по месяцам $sql = 'select * from contract where month(contract_date) in ('.$months_str.')';
//.... } |
И поменяй value чекбоксов на цифры 1-12:
было:
HTML |
<input name="month[]" type="checkbox" value = "Январь"> |
стало:
HTML |
<input name="month[]" type="checkbox" value = "1" /> |