2014-02-17 4 views
-1

Допустим, у меня есть база данных, полная информации, и я хочу, чтобы пользователь нашел свою информацию, указав свой идентификатор. Я собираю ввод пользователя с:Получить ресурс от POST php

'$_POST[PID]' 

И хочу поместить его в переменные ресурсах, как:

resource $result = '$_POST[PID]'; 

Для того, чтобы распечатать их информацию, как:

while($row = mysql_fetch_array($result)) 
      { 
       echo all their information 
       echo "<br>"; 
      } 

Однако я не могу создать переменную ресурса, потому что она говорит мне, что она является логической. Как я могу получить этот ресурс, чтобы распечатать список?

+2

Почему бы вам не избавиться от одинарных кавычек вокруг $ _POST [PID]? затем добавьте настоящую команду sql ИСПОЛЬЗОВАНИЕ идентификатора, который вы собрали с пользовательского ввода. –

+2

* sidenote: * перестать использовать устаревшие функции 'mysql_ *'. используйте [MySQLi] (http://php.net/manual/en/book.mysqli.php) или [PDO] (http://php.net/manual/en/book.pdo.php). Вот хороший [учебник] (http://j.mp/PoWehJ) для PDO. – Raptor

ответ

4

Несколько проблем с этим

Во-первых, resource что-то вроде набора результатов базы данных, соединение (как fsockopen), и т.д. Вы не можете просто объявить или типаж переменную в результирующий набор

Во-вторых, вам нужно сделать что-то вроде SQL, чтобы получить данные на основе этого идентификатора. Это включает в себя подключение к БД, выполнения запроса и затем делает ваш fetch_array

В-третьих, mysql_ функции амортизации. Вместо этого используйте вместо этого mysqli.

+0

Будет что-то вроде '$ result = mysql_query ($ _ POST [PID]);' work? – user1404664

+0

Вы проигнорировали тот факт, что mysql_ * обесценивается. Он больше не поддерживается, поэтому использование mysql_ * не будет хорошим способом разработки чего-то, что должно быть легко сохранено в будущем. Кроме этого, вам все еще не хватает команды sql. –

+0

Нет. Во-первых, вы передаете свой параметр как SQL. Во-вторых, вы широко открыты для SQL-инъекций. – Machavity

0

Я думаю, что у вас проблемы с отображением набора результатов.

Попробуйте

$id = $_POST['PID']; 
$result = "SELECT * FROM table WHERE id ='.$id.'"; 

while($row = mysqli_query($result)) 
     { 
      echo $row[0]; //or whichever column you want to display. 
          //$row[0] will display your 
          // PK 

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