Возвращение набора результатов с одной страницы на другую в PHP - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть 2 страницы php: query.php и result.php.

В query.php я выполняю оператор запроса (выбора). Возвращает набор результатов

$rs = mysql_query($query);

Теперь я хочу вернуть этот набор результатов из query.php на другую страницу result.php и работать с ним. Как это:

В query.php:

return $rs

и result.php:

$result = executeQuery($query) // we get the resultset in this variable
while ($row == mysql_fetch_array($result){
//do something 
}

Если вышеупомянутое не рекомендуется, пожалуйста, предоставьте мне альтернативы. Но мне нужны функция запроса и набор результатов на разных страницах.

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Вы можете просто включить results.php на свою страницу query.php, если вы просто хотите сохранить отдельный код в исходных файлах, но на самом деле не требуется перенаправлять с одной страницы на другую:

В query.php:

$rs = mysql_query($query);
include "results.php";

In results.php:

while ($row == mysql_fetch_array($rs){
  //do something 
}

Если пытаться «вернуть $ rs» с одной страницы на другую, это не так, как работает PHP. Оператор return действителен только внутри функции. Если вы действительно хотите передать данные с одной страницы PHP на другую и будете перенаправлять на эту другую страницу, вам нужно будет использовать либо сеанс, либо cookie, передать их в URL (т.е. использовать GET) или использовать curl и добавить это как POST var.

0 голосов
/ 14 декабря 2011

Если это действительно так, то нужно сохранить набор результатов в базе данных где-нибудь или в файле и дать каждому результату уникальное имя. Затем передайте это имя на следующую страницу, чтобы его можно было найти.

Например,

query.php будет перенаправлен на result.php?result_set=ab24sdfsdfklls.

Это имеет дополнительное преимущество, заключающееся в том, что вы можете использовать result_set так часто, как вы хотите. Посетители могут иметь несколько наборов результатов за одно посещение. Они могут поделиться URL-адресом страницы набора результатов с другими людьми и т. Д.

Просто обязательно в конце концов удалите хранилище данных, так как оно будет только расти, но это совсем другой вопрос.

...