ホームページ  >  記事  >  バックエンド開発  >  繰り返し領域を追加後、ページングなしで昇順

繰り返し領域を追加後、ページングなしで昇順

WBOY
WBOYオリジナル
2016-06-23 14:10:24855ブラウズ

専門家にアドバイスを求めています。50 個の情報を昇順に表示する繰り返し領域を追加するために作成した Web ページでは、ページングを使用できません。新しい情報がページの下部にあり、古い情報がページの上部にありますが、50 件を超える情報が追加された場合でも、ページには 1 ~ 50 件の情報が表示されます。新しい情報を表示すると同時に古い情報を表示しません。ありがとうございます


ディスカッションに返信(解決策)

データベースから読み取る場合は、最初に desc を実行し、次に制限して最初の 50 項目を取得します
select * from table desc order by id limit 0,49
それでも昇順で並べ替えたい場合は、 select * from (select * from table order by id desc limit 0,49 ) order by id asc

$currentPage = $_SERVER["PHP_SELF"]
$maxRows_R1; = 10;
$ pageNum_R1 = 0;
if (isset($_GET['pageNum_R1'])) {
$pageNum_R1 = $_GET['pageNum_R1'] }
$startRow_R1 = $maxRows_R1; maxRows_R1 = 35;
$pageNum_R1 = 0;
if (isset($_GET['pageNum_R1'])) {
$pageNum_R1 = $_GET['pageNum_R1'];}
$startRow_R1 = $pageNum_R1
mysql_select_db( $database_liandb, $ liandb);
$query_R1 = "SELECT * FROM mydb1 ORDER BY id ASC";
$query_limit_R1 = sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1) ;
$R1 = mys ql_query ($query_limit_R1, $liandb) または die(mysql_error());
どのように追加すればよいですか?

$query_R1 = "SELECT * FROM mydb1 ORDER BY id desc";
$query_limit_R1=sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1); select * from (".$query_limit_R1.") order by id asc "

$R1 = mysql_query($query_limit_R1_Supper, $liandb) または die(mysql_error());

$row_R1 = mysql_fetch_assoc($R1);

$query _limit_R1 引用文 少なすぎたのかもしれません。動作しない場合はデバッグしてください

$pageNum_R1 = $_GET['pageNum_R1'];}
$startRow_R1 = $pageNum_R1 * $maxRows_R1;
$query_R1 = " SELECT * FROM mydb1 ORDER BY id DESC";
$query_limit_R1 = sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1);

$query_limit_R1_Supper ="select * from (".$query_limit_R1." ) order by id asc ";

$R1 = mysql_query($query_limit_R1, $liandb) または die(mysql_error());
$row_R1 = mysql_fetch_assoc($R1);

これは降順であり、昇順は機能しません。

違います。 。 。
$R1 = mysql_query($query_limit_R1_Supper, $liandb) または die(mysql_error());
$query_limit_R1 ではありません

初心者なので詳しく記入してください、ありがとう

$pageNum_R1 = $_GET['pageNum_R1'];}$startRow_R1 = $pageNum_R1 * $maxRows_R1;mysql_select_db($database_liandb, $liandb);$query_R1 = "SELECT * FROM mydb1 ORDER BY id desc";$query_limit_R1=sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1);$query_limit_R1_Supper ="select * from (".$query_limit_R1.") order by id asc "$R1 = mysql_query($query_limit_R1_Supper, $liandb) or die(mysql_error());$row_R1 = mysql_fetch_assoc($R1);


$ pageNum_R1 = $ _GET['pageNum_R1'];}

$startRow_R1 = $pageNum_R1 * $maxRows_R1;

mysql_select_db($database_liandb, $liandb);

$query_R1 = "SELECT * FROM mydb1 ORDER BY id DESC";制限_R1 = sprintf(" %s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1);

$R1 = mysql_query($query_limit_R1_Supper, $liandb) または die(mysql_error());

$row_R1 = mysql_fetch_assoc($) R1) ;


エラー メッセージ: クエリが空です

$query_limit_R1 = sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1);
$R1 = mysql_query($query_limit_R1_Supper, $liandb) または die(mysql_error());
この行中间那行删除了?
$query_limit_R1=sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1);
$query_limit_R1_Supper ="select * from (".$query_limit_R1.") order by id asc "
$R1 = mysql_query($query_limit_R1_Supper, $liandb) or die(mysql_error());
中间那行呢

$pageNum_R1 = $_GET['pageNum_R1'];}
$startRow_R1 = $pageNum_R1 * $maxRows_R1;
mysql_select_db($database_liandb, $liandb);
$query_R1 = "SELECT * FROM mydb1 ORDER BY id DESC"; 
$query_limit_R1 = sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1);
$query_limit_R1_Supper ="select * from (".$query_limit_R1.") order by id asc ";
$R1 = mysql_query($query_limit_R1_Supper, $liandb) または die(mysql_error());
$row_R1 = mysql_fetch_assoc($R1);

错误示唆:每一派生表必须有自己的别名

$query_limit_R1_Supper ="select * from (".$query_limit_R1.") M, order by id asc ";

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? ストリップスラッシュ($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? 「」」 。 $theValue 。 "'" : "ヌル";
休憩;    
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
休憩;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
休憩;
ケース "日付":
$theValue = ($theValue != "") ? 「」」 。 $theValue 。 "'" : "ヌル";
休憩;
ケース「定義済み」:
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
休憩;
}
$theValue を返します。
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_R1 = 10;
$pageNum_R1 = 0;
if (isset($_GET['pageNum_R1'])) {
$pageNum_R1 = $_GET['pageNum_R1'];
}
$startRow_R1 = $pageNum_R1 * $maxRows_R1;
$maxRows_R1 = 35;
$pageNum_R1 = 0;
if (isset($_GET['pageNum_R1'])) {
$pageNum_R1 = $_GET['pageNum_R1'];}
$startRow_R1 = $pageNum_R1 * $maxRows_R1; 
mysql_select_db($database_liandb, $liandb); 
$query_R1 = "SELECT * FROM mydb1 ORDER BY id desc"; 
$query_limit_R1=sprintf("%s LIMIT %d, %d", $query_R1, $startRow_R1, $maxRows_R1); 
$query_limit_R1_Supper ="select * from (".$query_limit_R1.") M, order by id asc "; 
$R1 = mysql_query($query_limit_R1_Supper, $liandb) または die(mysql_error()); 
$row_R1 = mysql_fetch_assoc($R1);

if (isset($_GET['totalRows_R1'])) {
$totalRows_R1 = $_GET['totalRows_R1'];
} else {
$all_R1 = mysql_query($query_R1);
$totalRows_R1 = mysql_num_rows($all_R1);
}
$totalPages_R1 = ceil($totalRows_R1/$maxRows_R1)-1;

$queryString_R1 = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array(); foreach($ params as $ param){
if(stristr($ param、 "pagenum_r1")== false &&
stristr($ param、 "totalRows_r1")== false){
array_push($ newparams、$ param)) ;
}
}
if (count($newParams) != 0) {
$queryString_R1 = "&" .htmlentities(implode("&", $newParams));
}
}
$queryString_R1 = sprintf("&totalRows_R1, $queryString_R1);

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の asc 付近の注文 ID を使用して正しい構文を確認してください。

$query_limit_R1_Supper ="select M.* from (".$ query_limit_R1.") M、id asc で並べ替えます

それでも同じエラー


SQL 構文に誤りがあります。1 行付近の order id asc を使用した正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。いいえ。

$query_limit_R1_Supper ="select M.* from (".$query_limit_R1.") M order by id asc ";

余分なカンマが必要です。 。大変申し訳ありません

今回は大丈夫です、ご協力いただきありがとうございます。しかし、良い答えを選択する方法がわかりません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。