За последние 24 часа нас посетили 24503 программиста и 1712 роботов. Сейчас ищут 1773 программиста ...

Листалка страниц и прочее :)

Тема в разделе "PHP для новичков", создана пользователем Hot, 18 июл 2008.

  1. Hot

    Hot Активный пользователь

    С нами с:
    11 июн 2008
    Сообщения:
    6
    Симпатии:
    0
    Пишу такую штучку, как адрессную книгу. Имя и фамилия контакта - ссылка на страницу с более полными данными контакта. Вывожу по 10 контактов на страницу. Если выбираю контакт не на первой странице, выбрасывает опять на первую.
    Вторая проблема заключается в том, что использую две функции - list_records() и view_record(). Первая вывоит список контактов, вторая (ещё не дописал) действие, при кликании по имени контакта. При загрузке страницы, в адресе, userid равен первому значениюкоторое есть в БД. А я использую, для выбора функции
    PHP:
    1.  
    2. if(empty($_GET['action'])){
    3. $_GET['action'] = 'list_records';
    4. }
    5. switch ($_GET['action']){
    6. case "view_record":
    7.         view_record();
    8.         break;
    9. default:
    10.         list_records();
    11.         break;
    12.  
    Проблема в листалке наверное. Но на всякий случай выложу всё, что относится к выводу информации.
    Ниже вылаживаю исходники.

    PHP:
    1.  
    2. // administration.php
    3. <html>
    4. <head>
    5. <title>Administration</title>
    6. <link rel=stylesheet href="adress_book.css" type="text/css">
    7. <style type="text/css">
    8. </style>
    9. </head>
    10. <body>
    11.  
    12. <!-- Область шапки -->
    13. <table width="100%" height="96">
    14. <tr><td class="head">  
    15. </table>
    16.  
    17. <table align="center">
    18. Search: <input type ="TextArea" name="search">
    19. <br><br>
    20. <button = "submit" Name="search_b" Value="Submit"> Search </button>
    21. </form>
    22. </table>
    23. <br><br>
    24.  
    25. <table align="center">
    26. <a href="./Add_new_record.php"> Add New Record </a>
    27. </table>
    28. <br>
    29. <!-- Вывод списка контактов-->
    30. <?php
    31. function list_records() {
    32.     include ("connect_to_db.php");
    33.     include ("out_information.php");
    34. }
    35.  
    36.  
    37. function view_record() {
    38.  
    39.         echo("<script>location.href='http://localhost/adress_book/detal_data.php'</script>");
    40.        
    41. }      
    42.  
    43.  
    44. if(empty($_GET['action'])){
    45. $_GET['action'] = 'list_records';
    46. }
    47. switch ($_GET['action']){
    48. case "view_record":
    49.             view_record();
    50.             break;
    51. default:
    52.             list_records();
    53.             break;
    54. }          
    55.            
    56. ?>
    57.  
    58. </body>
    59. </html>
    60.  
    Листалка с выводом инфы
    PHP:
    1.  
    2. <?php
    3. //out_information.php
    4. $nums = 10;
    5.  
    6. if (isset ($_GET['page']) )
    7. {
    8.     $page = intval($_GET['page']);
    9. }
    10. else
    11. {
    12.     $page = 1;
    13. }
    14.  
    15. $query = "SELECT COUNT(*) AS `counter` FROM `users`";
    16. $sql = mysql_query($query) or die(mysql_error());
    17. $row = mysql_fetch_assoc($sql);
    18.  
    19. $elements = $row['counter'];
    20.  
    21. $pages = ceil($elements/$nums);
    22.  
    23.  
    24. if ($page < 1)
    25. {
    26.     $page = 1;
    27. }
    28. elseif ($page > $pages)
    29. {
    30.     $page = $pages;
    31. }
    32.  
    33.  
    34. $start = ($page - 1) * $nums;
    35.  
    36. // когда у нас в таблице нет записей
    37. if ($start < 0) $start = 0;
    38.  
    39. $query = "SELECT * FROM `users` LIMIT {$start}, {$nums}";
    40. $sql = mysql_query($query) or die (mysql_error());
    41.  
    42. //=====================================================================================================
    43. if($_SERVER['SCRIPT_FILENAME'] == "Z:/home/localhost/www/adress_book/index.php")
    44. {
    45. include("out_information_on_index.php");
    46.  
    47. }
    48. if($_SERVER['SCRIPT_FILENAME'] == "Z:/home/localhost/www/adress_book/administration.php")
    49. {
    50. include("out_information_on_administration.php");
    51. }
    52.  
    53. //======================================================================================================
    54.  
    55. print "</table>\n";
    56.  
    57. // далее нам надо прицепить листалку
    58.  
    59. $neighbours = 6;
    60. $left_neighbour = $page - $neighbours;
    61. if ($left_neighbour < 1)
    62.     {
    63.         $left_neighbour = 1;
    64.     }
    65. $right_neighbour = $page + $neighbours;
    66. if ($right_neighbour > $pages)
    67.     {
    68.         $right_neighbour = $pages;
    69.     }
    70.  
    71. for ($i=$left_neighbour; $i<=$right_neighbour; $i++)
    72.     {
    73.         if ($i != $page)
    74.             {
    75.                 print ' <a href="?page=' . $i . '">' . $i . '</a> ';
    76.             }
    77.         else
    78.             {
    79.                 // выбранная страница
    80.                 print ' <b>' . $i . '</b> ';
    81.                                
    82.             }
    83.     }
    84.  
    85.    
    86.  
    PHP:
    1.  
    2. <?php
    3. //out_information_on_administration.php
    4.  
    5. print "<table align = 'center' border=1 >";
    6. echo "<th> ID </th>
    7.       <th> Name </th>
    8.       <th> Country </th>
    9.       <th> City </th>
    10.       <th COLSPAN=2> Action </th> ";
    11.  
    12. while ($line = mysql_fetch_array($sql))
    13.     {
    14.    
    15. $userid = $line['id'];
    16. $username = $line['first_name'] . " " . $line['last_name'];
    17. $country = $line['country'];
    18. $city = $line['city'];
    19.  echo "<tr>";
    20.        
    21.         echo "<td> $userid </td>";
    22.         echo "<td><a href = '?action=view_record&userid=".$userid."'> ".$username." </a></td>";
    23.         echo "<td> $country </td>";
    24.         echo "<td> $city </td>";
    25.         echo "<td> [EDIT] </td>";
    26.         echo "<td> [DELETE] </td>";
    27.         echo "</tr>";  
    28.     }
    29. ?> 
    30.