Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017
Откуда: Германия, Бавария
Помог: 37 раз(а)
|
beki007 пишет:Есть 4 таблицы в базе: person(id, name, lastname), city(id, title), transport(id, title, price, date), hotel(id, title, price).
Имеется html форма:
Спойлер (Отобразить)CODE ( html):
скопировать код в буфер обмена
<form method="GET" action="/"> <select name="personname"> <option value="Иван">Иван</option> <option value="Сергей">Сергей</option> </select> <input name="citytitle" type="text"> <input name="hoteltitle" type="text"> <input name="transportdate1" type="date"> <input name="transportdate2" type="date"> <input name="price1" type="number"> <input name="price2" type="number"> <button id="submit">Искать</button> </form> <div class="result"></div> <script type="text/javascript"> $('#submit').click(function(){ $.ajax({ url: 'script.php?person=' + $('select[name="personname"]').val() + '&citytitle=' + $('input[name="citytitle"]').val() + '&hoteltitle=' + $('input[name="hoteltitle"]').val() + '&transportdate1=' + $('input[name="transportdate1"]').val() + '&transportdate2=' + $('input[name="transportdate2"]').val() + '&price1=' + $('input[name="price1"]').val() + '&price2=' + $('select[name="price2"]').val(), dataType: "html", type: 'GET', success: function(data){ if (data == ""){ $('div.result').html("Поиск дал 0 результатов"); }else{ $('div.result').html(data); } } }); }); </script>
и содержимое script.php:
Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
<?PHP require_once "config.php"; // подключаемся к базе данных foreach("$_GET['personname']"){ $query = "SELECT * FROM `person` WHERE `personname` = $_GET['personname']"; echo ' <table> <tr> <td id="personname">$sql[name]</td> <td id="citytitle"> *?* </td> <td id="transportdate"> *?* </td> <td id="hoteltitle"> *?* </td> <td id="pricetransport_pricehotel"> *?* </td> </tr> </table>'; } }; ?>
Вот тут в php надо сделать так: вывести данные из таблиц, соответствующий данным из формы поиска, потом суммировать price из таблицы transport + price из таблицы hotel. И вывести на таблицу.
Как можно реализовать? Помогите пожалуйста.
Заранее благодарен за помощь
Добрый день!
Допустим, что есть 4 таблицы в базе: person(id, name, lastname), city(id, title), transport(id, title, price, date), hotel(id, title, price) Спойлер (Отобразить)CODE ( SQL):
скопировать код в буфер обмена
-- -- Tabellenstruktur for Tabelle `city` -- CREATE TABLE IF NOT EXISTS `city` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` text COLLATE latin1_german2_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=5 ; -- -- Daten for Tabelle `city` -- INSERT INTO `city` VALUES(1, 'ccc1'); INSERT INTO `city` VALUES(2, 'ccc2'); INSERT INTO `city` VALUES(3, 'ccc3'); INSERT INTO `city` VALUES(4, 'ccc4'); -- -------------------------------------------------------- -- -- Tabellenstruktur for Tabelle `hotel` -- CREATE TABLE IF NOT EXISTS `hotel` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` text COLLATE latin1_german2_ci NOT NULL, `price` float NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=5 ; -- -- Daten for Tabelle `hotel` -- INSERT INTO `hotel` VALUES(1, 'hhh1', 100); INSERT INTO `hotel` VALUES(2, 'hhh2', 120); INSERT INTO `hotel` VALUES(3, 'hhh3', 50); INSERT INTO `hotel` VALUES(4, 'hhh4', 25); -- -------------------------------------------------------- -- -- Tabellenstruktur for Tabelle `person` -- CREATE TABLE IF NOT EXISTS `person` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text COLLATE latin1_german2_ci NOT NULL, `lastname` text COLLATE latin1_german2_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=5 ; -- -- Daten for Tabelle `person` -- INSERT INTO `person` VALUES(1, 'aaaaaa', 'bbbbbbbbbb'); INSERT INTO `person` VALUES(2, 'ccccccc', 'dddddddd'); INSERT INTO `person` VALUES(3, 'aaa', 'bbb'); INSERT INTO `person` VALUES(4, 'ccc', 'ddd'); -- -------------------------------------------------------- -- -- Tabellenstruktur for Tabelle `transport` -- CREATE TABLE IF NOT EXISTS `transport` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` text COLLATE latin1_german2_ci NOT NULL, `price` float NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=5 ; -- -- Daten for Tabelle `transport` -- INSERT INTO `transport` VALUES(1,'ttt1', 30, '2018-07-15'); INSERT INTO `transport` VALUES(2,'ttt2', 40, '2018-07-19'); INSERT INTO `transport` VALUES(3,'ttt3', 10, '2018-07-28'); INSERT INTO `transport` VALUES(4,'ttt4', 60, '2018-07-31'); ------------------------------------------------------------------
Можно попробовать сделать запрос:Спойлер (Отобразить)CODE ( SQL):
скопировать код в буфер обмена
SELECT city.title AS ct, transport.title AS tt, transport.price AS tp, transport.date AS td, hotel.title AS ht, hotel.price AS hp, SUM(transport.price+hotel.price) AS summe FROM person LEFT JOIN city ON person.id = city.id LEFT JOIN transport ON person.id = transport.id LEFT JOIN hotel ON person.id = hotel.id WHERE person.name='aaa'
РезультатСпойлер (Отобразить)
ct tt tp td ht hp summe
ccc3 ttt3 10 2018-07-28 hhh3 50 60
Удачи!
|