Вывод данных из mysql с помощью php

119
30 июля 2021, 00:50

Есть база данных db_cars Запрос к базе данных должен выводить марку и модель автомобиля, свойства которого укажет пользователь. Если запрос забить в SQLyog с определёнными данными то всё работает, через php ничего не получается ни определённые данные, не данные которые вводит пользователь.

Облазил уже всё, пересмотрел код огромное кол-во раз.

Структура БД: cars: brand model fuel_consumprion engine_code body_code car_engine: engine_code fuel_type engine_capacity body_car: body_code doors_number

<html> 
 
<body> 
  <?php 
ini_set('display_errors',1); 
error_reporting(E_ALL); 
	$search_car = filter_input(INPUT_POST, 'search_car'); 
    setlocale(LC_ALL, 'Russian_Russia.65001');  
    if ($search_car) { 
      $engine_capacity = $_POST['engine_capacity']; 
      $doorts_number = $_POST['doorts_number']; 
      $fuel_type = $_POST['fuel_type']; 
      $fuel_consumption = $_POST['fuel_consumption']; 
      mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 
 
      $db = mysqli_connect("localhost", "root", "sa", "db_cars"); 
      if(mysqli_connect_errno()) {  
      	die("Помилка з'єднання: ".mysqli_connect_error());}  
       
      else {  
	mysqli_set_charset($db, 'utf8'); 
	$engine_capacity = mysqli_real_escape_string($db, $engine_capacity); 
	$doorts_number = mysqli_real_escape_string($db, $doorts_number); 
	$fuel_type = mysqli_real_escape_string($db, $fuel_type); 
	$fuel_consumption = mysqli_real_escape_string($db, $fuel_consumption); 
	$sql_cons = "SELECT `brand`,`model` FROM `cars` INNER JOIN `car_engine` ON `cars`.`engine_code` = `car_engine`.`engine_code` INNER JOIN `body_car` ON `cars`.`body_code` = `body_car`.`body_code` 
		WHERE `engine_capacity` = '$engine_capacity' AND `doorts_number` = '$doorts_number' AND `fuel_type` = '$fuel_type' AND `fuel_consumption` = '$fuel_consumption';"; 
		printf("Виконується запит.\n",$sql_cons, $sql_2); 
   	$result = mysqli_query($db, $sql_cons, $sql_2); 
	if ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
	{ 
	echo "<table border=1>\n"; 
          echo "<tr><td>Бренд</td> 
          		<td>Модель</td></tr>\n"; 
        	while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ 
        		printf("<tr><td>%s</td><td>%s</td></tr>\n",$row["brand"],$row["model"]);  
			}; 
          echo "</table>\n"; 
	mysqli_free_result($result); 
	}  
} 
} else { // відобразити форму 
?> 
    <P> 
      <H3 ALIGN=CENTER> Пошук автомобілей </H3> 
      <P> Вкажіть дані автомобіля, які вас цікавлять: 
        <FORM METHOD="POST" ACTION="<?php echo $_SERVER['PHP_SELF']?>"> 
          <p>Потужність двигуна <input name="engine_capacity" size="10"></p> 
          <P> Кількість дверей: 
            <INPUT NAME="doorts_number" SIZE="2"> 
            <p> Тип палива 
              <INPUT TYPE="radio" NAME="fuel_type" value="petrol" checked="checked">Бензин 
              <input type="radio" name="fuel_type" value="gas"> Газ 
              <input type="radio" name="fuel_type" value="diesel"> Дизель 
              <input type="radio" name="fuel_type" value="electro">Електрика</p> 
            <p>Витрата пального <input name="fuel_consumption" size="5"></p> 
            <INPUT TYPE=SUBMIT name="search_car" value="Шукати"> 
            <INPUT TYPE=RESET> 
        </FORM> 
        <?php 
    }    // end if    ?> 
</body> 
 
</html>

Answer 1

Во первых использовать простой mysqli и экранизировать запросы это такое себе, прочтите про PDO. Во вторых есть не сложная технология ajax которая без обновления страницы выполнит нужные вам изменения. Ещё строка которая выводит то что нужно

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
   printf("<tr><td>%s</td><td>%s</td></tr>\n",$row["brand"],$row["model"]); 
};

попробуй заменить на

while ($row = mysqli_fetch_assoc($result)){
   printf("<tr><td>%s</td><td>%s</td></tr>\n",$row["brand"],$row["model"]); 
};
READ ALSO
Пытаюсь реализовать каталог n-вложенности на PHP

Пытаюсь реализовать каталог n-вложенности на PHP

В БД Postgresql есть таблица каталог

121
Удаленный доступ к объектам в Android

Удаленный доступ к объектам в Android

Есть 2 приложенияОба приложения имеют определение интерфейса ICollback

132
Enter button Java

Enter button Java

Существует ли в Java регулярное выражение нажатие клавиши Enter как в python /r? Enter нужно отправить в консоль ssh, после выполнения команды

104