[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вытащить из БД столбцы отмеченные на форме.
Bolat
Привет знатоки! Помогите пож. с проблемой! :
Есть файл 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>=&& $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" />
Быстрый ответ:

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