Помогите сделать

sergey_prusov

Участник
Регистрация
31 Окт 2008
Сообщения
203
Реакции
4
Всем привет!
Имею код:
Код:
<?
function show_administrator_users(){
    global $base;
    global $var;

    $txt .= '
    <table class="list">
     <tr class="head">
      <td>Дата</td>
      <td>E-mail</td>
      <td>Имя</td>
      <td>Фамилия</td>
      <td>Телефон</td>
      <td>ICQ</td>
      <td>Баланс</td>
     </tr>
    ';

    $user = $base->exec('select id, email, name, family, phone, icq, count_rur, dataadd, hash
    from '.$var['base_tab_prefix'].'users
    order by dataadd desc');

    foreach($user as $user){
        if(strlen($user['email']) > 10){
        $user_email = substr($user['email'], 0, 10).'...';

        }else{
            $user_email = $user['email'];
        }

        $txt .= '
        <tr'.($num ? ' class="even"' : '').'>
         <td>'.date2str($user['dataadd']).'</td>
         <td><a href="/?change_user_hash='.$user['hash'].'" title="'.$user['email'].'">'.$user_email.'</a></td>
         <td>'.$user['name'].'</td>
         <td>'.$user['family'].'</td>
         <td>'.$user['phone'].'</td>
         <td>'.$user['icq'].'</td>
         <td>'.$user['count_rur'].'</td>
        </tr>
        ';

        $num = ($num *= -1) + 1;
    }

    $txt .= '
    <tr class="footer">
     <td colspan="7">&nbsp;</td>
     </td>
    </tr>
    ';

    $txt .= '
    </table>
    ';

    return $txt;
}
?>

На выходе получается табличка с пользователями. Факт тот, что выводятся все пользователи из б.д., а нужно чтобы получилось постранично. Т.е скажем по 25 пользователей на страницу.


Растолкуйте пожалуйста.
 
в запросе select используй структуру limit
например
PHP:
$user = $base->exec('select id, email, name, family, phone, icq, count_rur, dataadd, hash
    from '.$var['base_tab_prefix'].'users
    order by dataadd desc limit '.($p*10).',10');
выведет тебе записи по 10 штук со страницы $p
 
в запросе select используй структуру limit
например
PHP:
$user = $base->exec('select id, email, name, family, phone, icq, count_rur, dataadd, hash
    from '.$var['base_tab_prefix'].'users
    order by dataadd desc limit '.($p*10).',10');
выведет тебе записи по 10 штук со страницы $p

а странички как пронумеровать? поподробнее плз.
 
а странички как пронумеровать? поподробнее плз.
Например так:
PHP:
$p = 0;
$n = 10; // количество страниц
if ( isset( $_GET['p'] ) ) $p += $_GET['p']; // берем из get-параметра номер текущей страницы
for ( $i=1; $i<$n; $i++ ){
   if ( $i == ($p+1) ) echo "<b>$i</b>";
   else echo "<b><a href='?p='".($i-1).">$i</a></b>";
}
 
Например так:
PHP:
$p = 0;
$n = 10; // количество страниц
if ( isset( $_GET['p'] ) ) $p += $_GET['p']; // берем из get-параметра номер текущей страницы
for ( $i=1; $i<$n; $i++ ){
   if ( $i == ($p+1) ) echo "<b>$i</b>";
   else echo "<b><a href='?p='".($i-1).">$i</a></b>";
}
Странно, но ничего
 
Я думал достаточно просто наводки на размышления, поправлю для вашего случая
PHP:
$p = 0; $n = 10;
if ( isset( $_GET['p'] ) ) $p += $_GET['p'];
for ( $i=1; $i<$n; $i++ ){
   if ( $i == ($p-1) ) $txt .= "<b>$i</b>";
   else $txt .= "<b><a href='?p='".($i-1).">$i</a></b>";
}
 
Я думал достаточно просто наводки на размышления, поправлю для вашего случая
PHP:
$p = 0; $n = 10;
if ( isset( $_GET['p'] ) ) $p += $_GET['p'];
for ( $i=1; $i<$n; $i++ ){
   if ( $i == ($p-1) ) $txt .= "<b>$i</b>";
   else $txt .= "<b><a href='?p='".($i-1).">$i</a></b>";
}
Реально при нажатии на страницу выдает пустую страницу
 
добавил в вашу функцию:
PHP:
function show_administrator_users(){
  global $base;
  global $var;
   $p = 0; $n = 10;
   if ( isset( $_GET['p'] ) ) $p += $_GET['p'];
  $txt .= '
  <table class="list">
  <tr class="head">
  <td>Дата</td>
  <td>E-mail</td>
  <td>Имя</td>
  <td>Фамилия</td>
  <td>Телефон</td>
  <td>ICQ</td>
  <td>Баланс</td>
  </tr>
  ';

  $user = $base->exec('select id, email, name, family, phone, icq, count_rur, dataadd, hash
  from '.$var['base_tab_prefix'].'users
  order by dataadd desc');

  foreach($user as $user){
  if(strlen($user['email']) > 10){
  $user_email = substr($user['email'], 0, 10).'...';

  }else{
  $user_email = $user['email'];
  }

  $txt .= '
  <tr'.($num ? ' class="even"' : '').'>
  <td>'.date2str($user['dataadd']).'</td>
  <td><a href="/?change_user_hash='.$user['hash'].'" title="'.$user['email'].'">'.$user_email.'</a></td>
  <td>'.$user['name'].'</td>
  <td>'.$user['family'].'</td>
  <td>'.$user['phone'].'</td>
  <td>'.$user['icq'].'</td>
  <td>'.$user['count_rur'].'</td>
  </tr>
  ';

  $num = ($num *= -1) + 1;
  }

  $txt .= '
  <tr class="footer">
  <td colspan="7">&nbsp;</td>
  </td>
  </tr>
  ';

  $txt .= '
  </table>
  ';

   for ( $i=1; $i<$n; $i++ ){
     if ( $i == ($p-1) ) $txt .= "<b>$i</b>";
     else $txt .= "<b><a href='?p='".($i-1).">$i</a></b>";
   }
  return $txt;
}
 
добавил в вашу функцию:
PHP:
function show_administrator_users(){
  global $base;
  global $var;
   $p = 0; $n = 10;
   if ( isset( $_GET['p'] ) ) $p += $_GET['p'];
  $txt .= '
  <table class="list">
  <tr class="head">
  <td>Дата</td>
  <td>E-mail</td>
  <td>Имя</td>
  <td>Фамилия</td>
  <td>Телефон</td>
  <td>ICQ</td>
  <td>Баланс</td>
  </tr>
  ';

  $user = $base->exec('select id, email, name, family, phone, icq, count_rur, dataadd, hash
  from '.$var['base_tab_prefix'].'users
  order by dataadd desc');

  foreach($user as $user){
  if(strlen($user['email']) > 10){
  $user_email = substr($user['email'], 0, 10).'...';

  }else{
  $user_email = $user['email'];
  }

  $txt .= '
  <tr'.($num ? ' class="even"' : '').'>
  <td>'.date2str($user['dataadd']).'</td>
  <td><a href="/?change_user_hash='.$user['hash'].'" title="'.$user['email'].'">'.$user_email.'</a></td>
  <td>'.$user['name'].'</td>
  <td>'.$user['family'].'</td>
  <td>'.$user['phone'].'</td>
  <td>'.$user['icq'].'</td>
  <td>'.$user['count_rur'].'</td>
  </tr>
  ';

  $num = ($num *= -1) + 1;
  }

  $txt .= '
  <tr class="footer">
  <td colspan="7">&nbsp;</td>
  </td>
  </tr>
  ';

  $txt .= '
  </table>
  ';

   for ( $i=1; $i<$n; $i++ ){
     if ( $i == ($p-1) ) $txt .= "<b>$i</b>";
     else $txt .= "<b><a href='?p='".($i-1).">$i</a></b>";
   }
  return $txt;
}
сами ссылки страниц ведут не туда((( я вот про что
 
Назад
Сверху