Как вставить значение поля в запрос к Postgres

154
14 января 2018, 06:01

Есть два PHP файла: query.php с запросом к базе Postgres

$qexist = "SELECT
test.tb.id_bld,
  test.tb.street,
  test.tb.bld_no,
  test.tb.id_sector,
  test.tb.id_block,
  FROM
test.tb
WHERE test.tb.street = '$street'
" ;

и acmp.php с таблицей заполняемой autocomplete

<?php
         require_once ("pg_conn.php");
        $array[]="";
        ?>
  <!DOCTYPE html>
  <html>
  <head>
    <meta charset="utf-8">
    <title>ACMP</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.min.js"></script>
    <link rel="stylesheet" type="text/css" href="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/themes/sunny/jquery-ui.css">
    <script>
      $(function() {
        $('#street').autocomplete({
          source: 'street.php'
        });
    </script>
  </head>
  <body>
    <table>
      <tbody>
        <form method="get" action="acmp.php">
          <tr>
            <td>
              <label for="street">Street:</label>
            </td>
            <td>
              <input type="text" placeholder="Street name" required="required" id="street" name="street" onchange="sendForm(this.form)">
            </td>
          </tr
        </form>
      </tbody>
    </table>
  </body>
  </html>

Подскажите пожалуйста как правильно получить в запрос query.php

WHERE test.tb.street = '$street'

переменную $street, которая формируется в процессе автозаполнения поля "street" в acmp.php

Answer 1

Если бы вы читали документацию http://api.jqueryui.com/autocomplete/ То узнали бы, что значение передаёться как **term **.

И что бы его получить надо обратиться к $_GET['term'].

Назад надо вернуть или массив строк в JSON [ "Choice1", "Choice2" ]

Или массив обектов: [ { label: "Choice1", value: "value1" }, ... ]

ВНИМАНИЕ: Что бы избежать SQL injection. Подставлять значение в запрос на прямую нельзя!

Нужно восользоваться Prepared Statment http://php.net/manual/en/function.pg-prepare.php

Answer 2

Или я не понял суть вопроса, или это правильно

 if (isset($_POST['street'])) {
      // код 
 }
Answer 3

<?php 
  ini_set('display_errors',1); 
  error_reporting(E_ALL); 
$array[]=""; 
require_once ("pg_conn.php"); 
include ("acmp.php"); 
if(isset($_GET['street'])) { 
	$street = $_GET['street']; 
	echo $street; 
} 
else { 
	echo 'нема нихто'; 
} 
$qexist = "SELECT 
	test.tb_54646.id_bld,	 
	test.tb_54646.street, 
	test.tb_54646.bld_no, 
	test.tb_54646.id_sector, 
	test.tb_54646.id_block, 
	FROM 
	test.tb_54646 
	WHERE test.tb_54646.street='$street'" ;		 
 
$ress = pg_query ($qexist); 
 
		while ($row = pg_fetch_array ($ress)) { 
 
		$array[]=$row[0]; echo " id_bld " .  $row [0]; 
		$array[]=$row[1]; echo " street " .  $row [1]; 
		$array[]=$row[2]; echo " bld_no " .  $row [2]; 
		$array[]=$row[3]; echo " id_sector " .  $row [3]; 
		$array[]=$row[4]; echo " id_block" .  $row [4];		 
		} 
	 
   if (!empty($_GET['term']))        
    { 
        $term = $_GET['term']; 
		$pattern = '/^'.preg_quote($term).'/iu'; 
		echo json_encode(preg_grep($pattern, $array)); 
    } 
 ?>

READ ALSO
thumbnails для before after slider

thumbnails для before after slider

Добрый день, столкнулся с проблемой при работе с before -after слайдеромПри разработке сайта, клиент захотел реализовать thumbs для before - after slider,...

132
Актуален ли сегодня botan.io?

Актуален ли сегодня botan.io?

Требуется обложить метрикой бота для телеграмНашел сайт http://botan

153
Особенности работы сессий laravel

Особенности работы сессий laravel

Всем приветПланирую делать корзину для интернет-магазина

155
Web и криптовалюта

Web и криптовалюта

Есть ли какие-нибудь реальные способы привязать на сайте покупку товаров с помощью известных криптовалют на сегодняшнее время? Например,...

147