Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 30.10.2018, 00:24   #1
user12102018
 
Регистрация: 12.10.2018
Сообщений: 4
Репутация: 10
По умолчанию Генерирование формы на основе запроса select

Есть задача вот
При отправке формы генерируется запрос select, где выводятся только те поля которые в которых обозначено checkbox, также происходит сортировка таблицы по тому полю где выбран radiobutton и также для числовых данных и дать обеспечению возможность указать диапазон, и это все в одном запросе select.
Я это все сделал но у преподавателя возникли возражения:
1.Форма должна строиться на результатах запросов
2.min / max использовано нецелесообразно

Объясните мне, где в нижеследующем коде ошибки указанные выше.

Код:

//index.php
<?php
require_once 'connect_db.php';
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));
$query ="SHOW COLUMNS FROM first_table";
$result = mysqli_query($link, $query) or die("Error connection " . mysqli_error($link));
if($result)
{
    $rows = mysqli_num_rows($result);
    echo "<form action=\"select.php\" method=\"POST\">";
    echo "<table  border='3'>";
 
    echo "ID <input type='checkbox' name='checkbox[]' value='id'>
            Name \"<input type='checkbox' name='checkbox[]' value='name'>
            Sex \"<input type='checkbox' name='checkbox[]' value='sex'>
            Goodsname \"<input type='checkbox' name='checkbox[]' value='goodsname'>
            Price \"<input type='checkbox' name='checkbox[]' value='price'>
            Count \"<input type='checkbox' name='checkbox[]' value='count'>
            Addresss \"<input type='checkbox' name='checkbox[]' value='address'>
            Deliverydate \"<input type='checkbox' name='checkbox[]' value='deliverydate'>        
    ";
    echo "<br>";
 
    echo "ID <input type='radio' name='radio' value='id'>
            Name \"<input type='radio' name='radio' value='name'>
            Sex \"<input type='radio' name='radio' value='sex'>
            Goodsname \"<input type='radio' name='radio' value='goodsname'>
            Price \"<input type='radio' name='radio' value='price'>
            Count \"<input type='radio' name='radio' value='count'>
            Address\"<input type='radio' name='radio' value='address'>
            Deliverydate \"<input type='radio' name='radio' value='deliverydate'>        
    ";
 
    for ($i = 0 ; $i < $rows ; ++$i)
    {
        $row = mysqli_fetch_row($result);
        echo "<tr>";
        for ($j = 0 ; $j < 6 ; ++$j) echo "<td>$row[$j]</td>";
        echo "</tr>";
    }
    echo "</table>";
    echo " Date 1<input type=\"datetime-local\" name=\"calendar1\">";
    echo " Date 2<input type=\"datetime-local\" name=\"calendar2\">";
    echo " Price 1<input type='text' name = 'text1'>";
    echo " Price 2<input type='text' name = 'text2'>";
    echo " Count 1<input type='text' name = 'text3'>";
    echo " Count 2<input type='text' name = 'text4'>";
    echo "<input type='submit' name='Send' value='send'>";
    echo "</form>";
 
    mysqli_free_result($result);
}
mysqli_close($link);
 
 
$dbc = mysqli_connect('localhost', 'root', '', 'first_db') or die ('Error');
$query = "SELECT MIN(Price), MAX(Price), MAX(count), MIN(count), MAX(deliverydate),MIN(deliverydate) FROM first_table";
$result = mysqli_query ($dbc, $query) or die ('error');
if($result)
{
    $rows = mysqli_num_rows($result);
 
    echo "<table  border='3'>
<tr><td> Min(price)</td><td> Max(price)</td><td>Max(count)</td><td>Min(count)</td><td>MAX(Deliverydate)</td><td>MIN(Deliverydate)</td></tr>
        ";
 
    for ($i = 0 ; $i < $rows ; ++$i)
    {
        $row = mysqli_fetch_row($result);
        echo "<tr>";
        for ($j = 0 ; $j < 5 ; ++$j) echo "<td>$row[$j]</td>";
        echo "</tr>";
    }
    echo "</table>";
 
 
    mysqli_free_result($result);
}
?>
 
 
//seclect.php
<?php
$aDoor = $_POST['checkbox'];
$radio = $_POST['radio'];
$date1 = $_POST['calendar1'];
$date2 = $_POST['calendar2'];
 
$date1_ = str_replace("T"," ",$date1);
$date2_ = str_replace("T"," ",$date2);
 
$text1 = $_POST['text1'];
$text2 = $_POST['text2'];
$text3 = $_POST['text3'];
$text4 = $_POST['text4'];
$dip1 = (int)$text1;
$dip2 = (int)$text2;
$dip3 = (int)$text3;
$dip4 = (int)$text4;
if(empty($aDoor))
{
 
}
else
{
    $N = count($aDoor);
    for($i=0; $i < $N; $i++)
    {
        //echo($aDoor[$i] . ",");
    }
}
 
//var_dump($aDoor);
$lenght = count($aDoor);
$comma_separated = implode(",", $aDoor);
//echo $comma_separated;
 
$dbc = mysqli_connect('localhost', 'root', '', 'first_db') or die ('Error');
$query = "SELECT $comma_separated  FROM first_table where price between $dip1 and $dip2 and count between $dip3 and $dip4 ORDER BY $radio ASC ";
//$query = "SELECT $comma_separated  FROM first_table where price between $dip1 and $dip2 and count between $dip3 and $dip4 and deliverydate between $date1_  AND $date2_ ORDER BY $radio ASC ";
echo $query;
$result = mysqli_query ($dbc, $query) or die ('error');
if($result)
{
    $rows = mysqli_num_rows($result);
 
    echo "<table  border='3'>";
    for ($i = 0 ; $i < $rows ; ++$i)
    {
        $row = mysqli_fetch_row($result);
        echo "<tr>";
        for ($j = 0 ; $j < $lenght ; ++$j) echo "<td>$row[$j]</td>";
        echo "</tr>";
    }
    echo "</table>";
    echo "<br>";
 
    mysqli_free_result($result);
}
 
 
 
 
?>

user12102018 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отчет на основе данных перекрестного запроса zNR Microsoft Office Access 2 28.04.2015 12:26
[Delphi 7, BDE]: Как отобразить выборку (результат запроса SELECT) в DBGrid? Вадим Мошев БД в Delphi 5 11.11.2014 15:57
Оптимизация запроса not in (select ... sanich_23 SQL, базы данных 6 07.11.2014 03:56
отчет на основе SQL запроса kkasady БД в Delphi 1 20.05.2014 07:29
Динамическое генерирование формы veter48 PHP 2 23.04.2013 14:07


20:45.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru