Как просмотреть результаты с php mssql? - PullRequest
1 голос
/ 02 марта 2009

Я работаю с php и хочу сделать следующую кнопку, чтобы перейти к следующим 10 записям (например, когда вы просматриваете вопрос с помощью stackoverflow) Я не знаю, как это сделать, но я думаю сделать это с Top n record? Как вы думаете, это хорошая идея? Любое предложение?

Ответы [ 6 ]

3 голосов
/ 02 марта 2009

Что касается этого в PHP, вы можете легко заставить кнопку отправить запрос POST или GET на начальную сумму. Например, пользователь сделал бы начальный запрос, и это просто yoursite.com/search.php, а следующая кнопка отправила бы их на ту же страницу с теми же критериями поиска, отправив только дополнительное поле "start" (т.е. yoursite.com/search.php?start=10) , А в коде вы можете просто проверить это:

if(isset($_POST['start'])) {
    //code to add to the search string to start at $_POST['start']
}

Редактировать 1: Эта статья - лучшее, что я могу найти в отношении репликации функции LIMIT MySQL. Кроме того, этот имеет более определенный запрос для ссылки, но это та же идея.

0 голосов
/ 02 марта 2009

для MySQL:

$rowsPerPage = 10;
$offset = ((int)$_GET['page'] - 1) * $rowsPerPage;

$result = mysql_query(
    sprintf('select xxx from yyy LIMIT %d,%d', $offset, $rowsPerPage)
); 
0 голосов
/ 02 марта 2009

Вам это поможет?

$count=$_POST[page]*10;
0 голосов
/ 02 марта 2009

Вы можете использовать ограничение MySQL

Установить переменную с именем:

$limit = 10;
$pl = $_GET["page"] * $limit;
if(!isset($_GET["page"]) || $_GET["page"] == 1)
{
    $pl = 0;
}

и в вашем запросе сделайте

$sql = sprintf("SELECT * FROM table LIMIT %d,%d" 
mysql_real_escape_string($pl),
mysql_real_escape_string($limit));

Кстати, это из памяти, но я думаю, что это работает.

0 голосов
/ 02 марта 2009

разве mssql не имеет что-то вроде LIMIT в mysql? так что вы могли бы сделать:

select xxx from yyy LIMIT 0,10

для первых 10 результатов, затем выполните LIMIT 10,20 для следующих 10 результатов и т. Д.

0 голосов
/ 02 марта 2009

Я знаю, что в MySQL вы можете использовать LIMIT X, Y, где X - нижняя граница возврата, а Y - верхняя граница. Поэтому, если вы хотите вернуть 10-20, вы должны использовать LIMIT 10, 20. Не знаете, что такое эквивалент MS-SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...