Добре ето какъв ми е проблемът. Имам готова заявка, която се получи малко по-дълга от необходимото. Имам и 4 критерия в хтмл форма.
Две инпут полета и две селект полета. Няма смисъл да ви ги копирам при тях всичко си работи нормално. Заявката ми също работи нормано.
Целта ми е когато потребител въведе някой критерии в хтмл формата да му излизат резултатите от таблицата. Заявката ми работи нормално ако само един критерии е използван. Но когато се използват повече от един заявката чете и двата. Изкарва всички редове, които отговарят на единия зададен критерии и всички редове които отговарят на другия дори и да нямат нищо общо.
Пример:
Задавам Цвят: Зелен и задавам Размер: между 15-30 метра, заявката ми изкарва всички елементи които са зелени дори и да не са с размер между 15-30 метра и всички редове между 15-30 метра дори и да са съвсем различен цвят.
Та въпросът ми е какво да променя, за да ми изкарва само тези редове с елементи които имат зелен цвят и са между 15-30 метра?
Ето целият ми пхп файл:
Надявам се някой да може да помогне тук ще съм му благодарен.
П.П. Проблемът ми не е в 'AND' u 'OR' операторите, защото ако обърна всичко в 'AND' не ми чете заявката въобще не знам защо.
Две инпут полета и две селект полета. Няма смисъл да ви ги копирам при тях всичко си работи нормално. Заявката ми също работи нормано.
Целта ми е когато потребител въведе някой критерии в хтмл формата да му излизат резултатите от таблицата. Заявката ми работи нормално ако само един критерии е използван. Но когато се използват повече от един заявката чете и двата. Изкарва всички редове, които отговарят на единия зададен критерии и всички редове които отговарят на другия дори и да нямат нищо общо.
Пример:
Задавам Цвят: Зелен и задавам Размер: между 15-30 метра, заявката ми изкарва всички елементи които са зелени дори и да не са с размер между 15-30 метра и всички редове между 15-30 метра дори и да са съвсем различен цвят.
Та въпросът ми е какво да променя, за да ми изкарва само тези редове с елементи които имат зелен цвят и са между 15-30 метра?
Ето целият ми пхп файл:
Код:
<?php
//Connection
include "connect.php";
header("Content-Type:text/html; charset=utf-8");
$d1 = date("Y-m-d", strtotime($_POST['d1']));
$d2 = date("Y-m-d", strtotime($_POST['d2']));
$md = (isset($_POST['md'])) ? $_POST['md'] : '';
$col = (isset($_POST['col'])) ? $_POST['col'] : '';
$hp1 = $_POST['hp1'];
$hp2 = $_POST['hp2'];
//Query
$sql = "SELECT cars.brand,cars.model,cars.reg_num,cars.horse_powers,cars.color,clients.first_name, clients.last_name FROM cars INNER JOIN clients_cars ON cars.id=clients_cars.cars_id INNER JOIN clients ON clients_cars.clients_id=clients.id WHERE cars.id"
. " IN (SELECT DISTINCT clients_cars.cars_id FROM clients_cars WHERE (rent_date between '$d1' AND '$d2') OR (return_date between '$d1' AND '$d2') OR ((return_date>'$d2')AND(rent_date<'$d1')) OR ((horse_powers > '$hp1') AND (horse_powers < '$hp2')) OR cars.model LIKE '$md' OR cars.color LIKE '$col') ";
$result = mysqli_query($con, $sql) or die(mysqli_error($con,$sql));
echo mysqli_error($con);
while ($row= mysqli_fetch_array($result)){
$brand = $row['brand'];
$model = $row['model'];
$reg_num = $row['reg_num'];
$horse_powers = $row['horse_powers'];
$color = $row['color'];
$f_name = $row['first_name'];
$l_name = $row['last_name'];
echo $brand;
}
?>
Надявам се някой да може да помогне тук ще съм му благодарен.
П.П. Проблемът ми не е в 'AND' u 'OR' операторите, защото ако обърна всичко в 'AND' не ми чете заявката въобще не знам защо.