여러 사용자가 사용하는 집필 시스템이 있습니다. 기사에는 내 while 루프를 통해 실행되는 각 기사의 뷰어 ID에 대해 확인되는 자체 권한이 있습니다. 사용자가 기사를 볼 수 있도록 허용하면 $printcount
을 증가시키고 기사는 $limit
에 도달하면 루프가 종료됩니다. 나는 또한 정렬 이름, 날짜 삽입, 날짜 수정 및 제출 정렬 옵션이 있습니다.LIMIT 문 및 정렬이없는 페이지 번호
MySQL 제한 기능을 사용하지 않고 다음/이전 페이지 버튼을 어떻게 활용할 수 있습니까? 여기에 내 코드의 짧은 버전 (100 % 작동하지 않을 수 있지만 걸쳐 포인트를 데려 와야한다)에 난 단지 ID ASC
에 의해 분류 된 경우에, 나는 쉽게 last_id
로 ID를 저장할 수
<?php
$sort=$_GET['sort']; // date_added
$direction=$_GET['dir']; // ASC
$limit=$_GET['limit']; // 25
$query="SELECT * FROM `article` ORDER BY '$sort' '$direction'";
$result=mysql_query($query);
if(mysql_num_rows($result)==NULL) {
echo '<tr><td colspan="4">NO RECORDS FOUND</td></tr>';
}
$printcount=0;
while(($row=mysql_fetch_assoc($result))&&($printcount<$limit+1)) {
//if user is owner of article $readable=true;
//load permissions from permission column (comma separated integers) into array, if user's group ID is in that array $readable=true;
//if article "global_read" flag=1, $readable=true;
//if $printcount<$limit, and $readable echo the table row with data
//if $readable, $printcount++;
}
?>
하고있다 다음 페이지에는 추가로 WHERE
이 있지만, 정렬 옵션과 방향 옵션이 다르기 때문에 훨씬 더 복잡해 보입니다.`id`
> $ last_ID
나는 왜 해결해야 할 질문이 * 왜 *라고 생각합니다. 왜 이것을 원하고 필요로합니까? –
'LIMIT'이 없으면 응용 프로그램 서버에서 처리하므로 데이터베이스에서 동일한 데이터를 계속 가져올 필요가 없습니다. –
사용자 그룹에 대한 액세스를 제한하는 사내 위키를 만들었습니다. 그룹의 일부인 문자열을 쉼표로 구분하여 사용자 ID를 저장하는 그룹 테이블이 있습니다. 내 응용 프로그램이 잠재적으로 수천 개의 항목을 크롤링 할 수 있으므로 모든 단일 아티클에 대한 항목이있는 전용 사용 권한 테이블을 갖고 싶지 않았습니다. 플랫 파일을 자체 사용 권한 세트가 내장 된 파일로 사용하는 것 이외에 다른 접근 방법을 모르겠습니다. 이것은 사용 권한 시스템을 통합 한 첫 번째 시도이며 현재 데이터베이스와의 문자열에 대해 explode/implode를 사용하고 있습니다. –