2013-07-05 5 views
0

У меня есть форма, в которой пользователь вводит свой идентификатор, а затем заполняет их имя из базы данных? Существует целая форма, которую я только что скопировал соответствующие части и sql ниже.Заполнять поля из базы данных на основе ввода пользователем SQL

User ID: <input value="User ID" name="user_id"> 

$sql = "SELECT user_firstname, user_surname FROM users_tbl WHERE xxxx = users_tbl.user_id" 
$result = pg_query($sql); 

Я сделал это так далеко, но я не уверен, что делать.

ответ

0

Вы, вероятно, хотите что-то вроде ...

page1.php

<form method="POST" action="page2.php"> 
User ID: <input name="user_id" value="User ID"> 
<input type="submit" value="go"> 
</form> 

page2.php

$id = mysql_escape_string($_POST['user_id']); 
$sql = "SELECT `user_firstname`, `user_surname` FROM `users_tbl `WHERE `id` = '$id' LIMIT 1"; 
... 
+0

Я мог бы также использовать Ajax. Думаю, – Tom

+0

действительно зависит от того, что изменится на странице. если только несколько элементов на странице меняются (например, «вход/регистрация» становится «учетной записью/выводом») или вообще ничего, ajax - лучший пользовательский интерфейс. – neokio

1

Необходимо фильтровать переменные формы GET или POST. Таким образом, правильный путь будет:

$sql = "SELECT user_firstname, user_surname FROM users_tbl WHERE users_tbl.user_id= ".$_POST['user_id']; 
$result = pg_query($sql); 

Также не забудьте фильтровать POST и GET переменные из SQL инъекций

+0

Вот как я думал, что он будет решен. Я предполагаю, что форму нужно отправить первым? который затем поместит поля в переменные кнопки отправки из формы? – Tom

+0

Да, форма должна быть отправлена ​​первыми. Все переменные формы будут помещены в переменную $ _POST – freeland

Смежные вопросы