bokeh
07-18-2006, 07:46 AM
Which is the better of the following two from an SQL point of view and why?$page = isset($_GET['page']) ? $_GET['page'] : null ;
$results_per_page = 10;
connect();
$query = "SELECT * FROM `news_items` ORDER BY `start` DESC";
$result = mysql_query($query) or die(mysql_error());
if($num_rows = mysql_num_rows($result))
{
// make sure page is within range
$total_pages = $num_rows ? ceil($num_rows / $results_per_page) : 1 ;
$page = ((is_numeric($page)) and ($page >= 1) and ($page <= $total_pages)) ? (int)$page : 1 ;
// find the starting row
mysql_data_seek($result, ($results_per_page * $page) - $results_per_page);
$i = $results_per_page;
$content .= '<div class="left_col">'."\n\n";
while($row = mysql_fetch_assoc($result) and $i)
{Or this:$page = isset($_GET['page']) ? $_GET['page'] : null ;
$results_per_page = 10;
connect();
$query = "SELECT COUNT(*) as `count` FROM `news_items`";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$num_rows = $row['count'];
// make sure page is within range
$total_pages = $num_rows ? ceil($num_rows / $results_per_page) : 1 ;
$page = ((is_numeric($page)) and ($page >= 1) and ($page <= $total_pages)) ? (int)$page : 1 ;
$query = "SELECT * FROM `news_items` ORDER BY `start` DESC LIMIT $results_per_page OFFSET ".(($results_per_page * $page) - $results_per_page);
$result = mysql_query($query) or die($query .' - '. mysql_error());
if(mysql_num_rows($result))
{
$i = $results_per_page;
$content .= '<div class="left_col">'."\n\n";
while($row = mysql_fetch_assoc($result))
{
$results_per_page = 10;
connect();
$query = "SELECT * FROM `news_items` ORDER BY `start` DESC";
$result = mysql_query($query) or die(mysql_error());
if($num_rows = mysql_num_rows($result))
{
// make sure page is within range
$total_pages = $num_rows ? ceil($num_rows / $results_per_page) : 1 ;
$page = ((is_numeric($page)) and ($page >= 1) and ($page <= $total_pages)) ? (int)$page : 1 ;
// find the starting row
mysql_data_seek($result, ($results_per_page * $page) - $results_per_page);
$i = $results_per_page;
$content .= '<div class="left_col">'."\n\n";
while($row = mysql_fetch_assoc($result) and $i)
{Or this:$page = isset($_GET['page']) ? $_GET['page'] : null ;
$results_per_page = 10;
connect();
$query = "SELECT COUNT(*) as `count` FROM `news_items`";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$num_rows = $row['count'];
// make sure page is within range
$total_pages = $num_rows ? ceil($num_rows / $results_per_page) : 1 ;
$page = ((is_numeric($page)) and ($page >= 1) and ($page <= $total_pages)) ? (int)$page : 1 ;
$query = "SELECT * FROM `news_items` ORDER BY `start` DESC LIMIT $results_per_page OFFSET ".(($results_per_page * $page) - $results_per_page);
$result = mysql_query($query) or die($query .' - '. mysql_error());
if(mysql_num_rows($result))
{
$i = $results_per_page;
$content .= '<div class="left_col">'."\n\n";
while($row = mysql_fetch_assoc($result))
{