Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 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


18:21.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru