tags:

views:

36

answers:

1

I have recently used a php pagination tutorial http://www.tonymarston.net/php-mysql/pagination.html to display record information from mysql database. The problem is that the page only sends out the information sent in the latest form and am not quite sure how to fix the problem.

the code for the form output is shown below

$musicitems=getmusicitems($pagenumber,$prevpage,$lastpage,$nextpage); 
$count=($musicitems==NULL)?0:mysql_num_rows($musicitems);
   for($i=0;$i<$count;$i++)
   {
   $records=mysql_fetch_assoc($musicitems);
   print'
   <label for="deleteMusicItem'.$records['m_id'].'" id="deleteMusicItemLabel'.$records['m_id'].'">Delete Music Record:</label>
   <input type="checkbox" name="deleteMusicItem"  id ="deleteMusicItem'.$records['m_id'].'" value="delete" />
   <br/>
   <label for="artistname'.$records['m_id'].'" id="artistLabel'.$records['m_id'].'">Artist Name:</label>
   <input type="text" size="30" name="artistname" class="artistname1" id ="artistname'.$records['m_id'].'" value="'.$records['artistname'].'" /> 
   <br/>
   <label for="recordname'.$records['m_id'].'" id="recordnameLabel'.$records['m_id'].'">Record Name:</label>
   <input type="text" size="30" name="recordname" class="recordname1" id ="recordname'.$records['m_id'].'" value="'.$records['recordname'].'"/>
   <br/>
   <label for="recordtype'.$records['m_id'].'" id="recordtypeLabel'.$records['m_id'].'">Record type:</label>
   <input type="text" size="20" name="recordtype" class="recordtype1" id ="recordtype'.$records['m_id'].'" value="'.$records['recordtype'].'"/>
   <br/>
   <label for="format'.$records['m_id'].'" id="formatLabel'.$records['m_id'].'">Format:</label>
   <input type="text" size="20" name="format" class="format1" id ="format'.$records['m_id'].'" value="'.$records['format'].'"/>
   <br/>
   <label for="price'.$records['m_id'].'" id="priceLabel'.$records['m_id'].'">Price:</label>
   <input type="text" size="10" name="price" class="price1" id ="price'.$records['m_id'].'" value="'.$records['price'].'"/>
   <br/><br/>
   ';
    $musicfiles=getmusicfiles($records['m_id']);
    for($j=0;$j<2;$j++)
    {
      $mus=mysql_fetch_assoc($musicfiles);
      if(file_exists($mus['musicpath']))
      {
       echo '<a href="'.$mus['musicpath'].'">'.$mus['musicname'].'</a><br/>';    
      }
      else
      {
       echo '<label for="musicFile'.$records['m_id'].'" id="musicFileLabel'.$records['m_id'].'">Music:</label> <input type="file" size="40" name="musicFile1" id="musicFile'.$records['m_id'].'"/><br/>';   
      }
    }
    $pictures=getpictures($records['m_id']);
    for($j=0;$j<2;$j++)
    {
      $pics=mysql_fetch_assoc($pictures);
      if(file_exists($pics['picturepath']))
      {
       echo '<img src="'.$pics['picturepath'].'" width="150" height="150"><br/>';    
      }
      else
      {
       echo '<label for="pictureFile'.$records['m_id'].'" id="pictureFileLabel'.$records['m_id'].'">Picture:</label><input type="file" size="40" name="pictureFile1" id="pictureFile'.$records['m_id'].'"/><br/>';   
      }
    }
   }
  echo'<input type="submit" value="Submit" name="modfiymusicitem" id="modfiymusicitem" /> ';
  if ($pagenumber == 1) {
     echo " FIRST PREV ";
  } else {
     echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=1'>FIRST</a> ";
     $prevpage = $pagenumber-1;
     echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=$prevpage'>PREV</a> ";
  }
  echo "(Page $pagenumber of $lastpage)";
  if ($pagenumber == $lastpage) {
     echo " NEXT LAST ";
  } else {
     $nextpage = $pagenumber+1;
   echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=$nextpage'>NEXT</a> ";
   echo " <a href='{$_SERVER['PHP_SELF']}?pagenumber=$lastpage'>LAST</a> ";
}
A: 

you have to pass the form data to the next page manually. this, most important part, always forgotten by tutorial writers.

you have to pass to other pages not only pagenumber. but whole form data. Hope your form uses GET method, as it should be, so, you have your data either in the $_SERVER['QUERY_STRING'] as a string or $_GET array. So, you can either to regexp pagenumber in the QUERY_STRING, or assemble another QUERY_STRING from the $_GET array, like this:

$_GET['pagenumber']=$nextpage;
$query_string=http_build_query($_GET);
echo " <a href='{$_SERVER['PHP_SELF']}?$query_string'>NEXT</a> "; 
Col. Shrapnel