PHP Pagination problem
I have a problem with the pagination class that I have downloaded from here.
When I run this code it gives me more pages than I need as it is grouping all the files in the database as one but only displaying the files per my sql query. i.e if i have in totla 22 records in my database it gives me links to pages with no data on them. 1,2,3,4,5,6 etc Where only page 1,2 and 3 will only have records on them. My php code is as below require_once('includes/database.php'); require_once('includes/functions.php'); require_once ('pagination.php'); page_protect(); // Page variables $pageTitle = "Admin"; $currentPage = "upload"; $client_ID = mysql_query("SELECT id FROM clients WHERE user_name='".$_SESSION['user_name']."'")or die(mysql_error()); $client_ID = mysql_fetch_array($client_ID); $client_ID = $client_ID['id']; if(isset($_POST['upload'])) { $required = array('userfile'); $missing = array(); $validation = array(); $userfile = array('image/gif','image/pjpeg'); foreach($_POST as $key => $value) { $value = trim($value); if(empty($value) && in_array($key,$required)) { array_push($missing,$key); } } if($_FILES['userfile']['error'] != UPLOAD_ERR_OK) { $validation['image_error'] = file_upload_error_message($_FILES['userfile']['error']); array_push($missing, 'image_error'); } else { if($_FILES['userfile']['size'] > MAX_UPLOAD_FILE_SIZE) { $validation['image_size'] = "The file exceeds ".convert_size(MAX_UPLOAD_FILE_SIZE); array_push($missing, 'image_size'); } elseif(!in_array($_FILES['userfile']['type'],$userfile)) { $validation['image_type'] = "This file types is not allowed"; array_push($missing, 'image_type'); } } if(!empty($missing)) { $before = " <span class="warn">"; $after = "</span>"; foreach($validation as $key => $value) { if(in_array($key,$missing)) { ${"valid_".$key} = $before.$value.$after; } } } else { $uploadDir = 'uploads/'; $fileName = $_FILES['userfile']['name']; $tmpName = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; $filePath = $uploadDir . $fileName; $result = move_uploaded_file($tmpName, $filePath); if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); $filePath = addslashes($filePath); } $date = date('Y-m-d'); $time = date('H:i:s'); $sql = "INSERT INTO upload2 (name, client, size, type, path, date, time ) ". "VALUES ('$fileName', '$client_ID', '$fileSize', '$fileType', '$filePath', '$date', '$time')"; mysql_select_db($database_conndb, $conndb); $result = mysql_query($sql, $conndb) or die(mysql_error()); if($result) { $confirmation = "<p class="conf">The $fileName file/image has been uploaded succesfully.</p>"; } else { $confirmation = "<p class="warn">The $fileName file/image could not be uploaded.</p>"; } } } <?php include_once('includes/header.php'); ?> <!-- end heading --> <?php include_once('includes/end-header.php'); ?><!-- end breadcrumbs --> <div id="breadcrumbs"><!-- begin breadcrumbs --> <div class="container_16"> <ul class="crumbs"> <li><a href="index.php">Home</a></li> <li>Register</li> </ul> </div> </div><!-- end breadcrumbs --> <div id="center"><!-- begin center--> <div class="container_16"><!-- begin wrap --> <div class="block"> <div class="block_head"> <div class="bheadl"></div> <div class="bheadr"></div> <h2>Client Upload Area</h2> <p class="session"><?php echo $_SESSION['user_name'];?></p> <ul> <li><a href="#">Create New User</a></li> <li><a href="#">Add page</a></li> <li><a href="#">Logout</a></li> </ul> </div> <!-- .block_head ends --> <div class="block_content"> <p> <?php $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]); $page = ($page == 0 ? 1 : $page); $perpage = 20;//limit in each page $startpoint = ($page * $perpage) - $perpage; $sql = "SELECT * FROM upload2 WHERE client='".$client_ID."' ORDER BY date DESC, time DESC LIMIT $startpoint,$perpage"; mysql_select_db($database_conndb, $conndb); $result = mysql_query($sql, $conndb) or die(mysql_error()); $rows = mysql_fetch_assoc($result); $total_rows = mysql_num_rows($result); ?> <h6>Welcome <font color="#42b7d4"><?php echo $_SESSION['user_name'];?></font></h6> <p> </p> <p> <h7>please choose a file/image to upload.</h7> <?php //show pages echo Pages("upload2",$perpage,"upload1.php?"); ?> </p> <form action="" method="post" class="niceform" enctype="multipart/form-data"> <fieldset> <?php echo isset($confirmation) ? $confirmation : NULL; ?> <?php echo isset($valid_image) ? $valid_image : NULL; echo isset($valid_image_error) ? $valid_image_error : NULL; echo isset($valid_image_size) ? $valid_image_size : NULL; echo isset($valid_image_type) ? $valid_image_type : NULL; ?> <p> </p> <dl> <dt><label for="upload">Upload a File:</label></dt> <dd><input name="userfile" type="file" name="upload" id="upload" /></dd> </dl> <dl> <input name="upload" type="submit" id="uploadsubmit" value="Upload" /> </dl> </fieldset> </form> <p> </p> <?php if($total_rows > 0) { ?> <table border="0" cellpadding="0" cellspacing="0" id="tbl_repeat"> <tr> <th scope="col">File/Image Name</th> <th scope="col" style="width:10%">Date</th> <th scope="col" style="width:5%">Time</th> <th scope="col" style="width:10%">Size</th> <th scope="col" style="width:10%">Download</th> <th scope="col" style="width:5%">Delete</th> </tr> <?php do { ?> <tr> <td><?php echo $rows['name']; ?></td> <td><?php echo break_date($rows['date']); ?></td> <td><?php echo $rows['time']; ?></td> <td><?php echo convert_size($rows['size']); ?></td> <td><a href="downloads.php?id=<?php echo $rows['id']; ?>">Download</a></td> <td><a href="pages_remove_confirm.php?id=<?php echo $rows['id']; ?>">Delete</a></td> </tr> <?php } while($rows = mysql_fetch_assoc($result)); ?> </table> <?php } else { echo "<p class="warn">Sorry there are no records available.</p>"; } ?> </div> <!-- .block_content ends --> <div class="bendl"></div> <div class="bendr"></div> </div> <!-- .block ends --> <br /> </div><!-- end content --><!-- end portofolioSlider --> </div><!-- end wrap --> </div><!-- end center--> <?php require('includes/footer.php'); Does anyone know how to limit the records with the pagination with the client_id as the total num rows rather than all of the num rows?? Thank you
1 Answer
its easy just replace:
echo Pages(\"upload2\",$perpage,\"upload1.php?\");by echo Pages(\"upload2 WHERE client=\'\".$client_ID.\"\'\",$perpage,\"upload1.php?size=$perpage&\");and about the limit use this code <div class=\"pagination\"> <?php foreach (array(10,15,30,50) as $size) { if ($_GET[\'size\'] <> $size) { print \"<a href=\'?size=$size\"; print (isset($_GET[\"page\"])) ? \'&page=\'.$_GET[\"page\"] : \'\'; print \"\'>$size</a>\"; }else{ print \"<span class=\'current\'>$size</span>\"; } } ?> <span class=\"disabled\">Per page</span></div>and replace $perpage = 20;//limit in each pageto $perpage = (isset($_GET[\'size\'])) ? $_GET[\'size\'] : 20;//limit in each page and you must use this ?size=10&page=1 Posted: MacOS 1 of 1 people found this answer helpful. Did you? Yes No |
© Advanced Web Core. All rights reserved