A kid from The Ural's

Доброго времени суток, возникла проблема с методом get и последующей нумерацией страниц по количеству информации на них
Есть фаил
http://www.gviragon.ru/pupils.php
Выбирающий из БД три факультета
При переходе по каждой ссылки, получаем страницу с учениками именно этого факультета, используя GET, например
http://gviragon.ru/faculty.php?faculty=Элквуд
Но при выборки я делаю так, чтобы на странице могло присутствовать определенно число рядов из БД
читать дальше





И внизу вывод нумерации по страницам, который тоже использует метод get
читать дальше




Сама функция, которая формирует нумерацию по страницам
читать дальше






Таким образом данные полученные с помощью GET в первый раз теряются, и при кликании на 2ую и последующие страницы ничего не выводиться.
Как можно довести это до ума?



@темы: PHP

Комментарии
23.05.2008 в 02:04

Еле продрался сквозь этот ужас...
Проверяй пост после отправления, а?

$add_faculty =isset($_GET['faculty']) ? $_GET['faculty']."&" : "" ;
shownumerlist($page, $rez[0], $gb_on_page, $_SERVER[PHP_SELF]."?".$add_faculty);
26.05.2008 в 20:12

Sanctus Satanas
Господи, зачем было htmlspecialchars'ить исходный код?..

Жуть какая.
Во-первых, лучше считать ряды другим способом:
SELECT SQL_CALC_FOUND_ROWS id, nick, email, info, course, stat, faculty FROM test WHERE бла-бла-бла
SELECT FOUND_ROWS()


Во-вторых, это можно сделать примерно так:
$limit 25//количество записей на странице
$page = empty($_GET['page']) ? abs($_GET['page']) : 1//нумерация будет с первой страницы
$start $limit * ($page 1); //первый ряд выборки

// здесь SQL-запрос с выборкой данных

$pages ceil(mysql_result(mysql_query('SELECT FOUND_ROWS()'), 0) / $limit);
$url $_SERVER['PHP_SELF'].(isset($_GET['faculty']) ? '?faculty='.$_GET['faculty'].'&' '?');

function 
PageSelector(){
    global 
$pages$url;
    if (
$pages 1){ //entia non sunt multiplicanda praeter necessitatem
       
echo '<table align="center">'."\n".'<tr>'."\n";
       
$pages++; //потому что нумерация страниц от единицы
       
for ($i 1$i $pages$i++){
            if (
$i != $page)
                echo 
'<td><a href="http://.
$url.'page='.$i.'">'.$i.'</a></td>'."\n";
            else
                echo 
'<td>'.$i.'</td>'."\n";
        }
        echo 
'</tr>'."\n".'</table>'."\n";
    }
}

PageSelector($); //вызов функции

26.05.2008 в 20:51

Sanctus Satanas
Сцучий дайри. (((
Короче, там строчку с «a href» надо читать как

echo '<td><а hrеf="'.$url.'page='.$i.'">'.$i.'</a></td>'."\n";

(пришлось заменить латинскую «e» на русскую «е» в слове «href»)

А в конце я случайно бакс поставил, должно быть, разумеется, просто PageSelector();
31.05.2008 в 21:29

A kid from The Ural's
Kuroi Kitsune
Упс! Сори за код, жуть...
? $_GET['faculty']."&" : "" - данная часть что значит?
--==SS==--
Ок, спасибо. Выглядит понятно, щас буду разбирать :)
31.05.2008 в 23:49

Это строковой if then
add_faculty equals (if isset $_GET['faculty'] then $_GET['faculty'] else "")
Так понятней?
02.06.2008 в 11:24

A kid from The Ural's
Kuroi Kitsune
Да. Но сейчас последующие страницы имеют такой url:
gviragon.ru/faculty.php?Элквуд&page=1
На них опять не осуществляется выборка

<?if ($_GET['faculty']) {

if (!
$_GET[page]) { $page=0; } else {$page $_GET[page];}
$gb_on_page "50";
$start $page*$gb_on_page;
$kakogo $_GET['faculty'];

$result mysql_query("SELECT id, nick, email, info, course, stat, faculty, points FROM test WHERE faculty='" mysql_escape_string($_GET['faculty']) . "' AND (stat = 'Ученик' OR stat = 'Префект') ORDER BY course DESC LIMIT $start, $gb_on_page ");

if (
mysql_num_rows($result) > 0) {
     
// yes
     // print them one after another
   
echo "<b>Список учеников факультета ".$kakogo."</b><br><table id='journal'>

<tr>     
         <td><b>#</b></td>
         <td><b>Имя</b></td>
         <td><b>Информация</b></td>
         <td><b>Курс</b></td>
         <td><b>Баллы</b></td>
     </tr>"
;
     
$num $start;
     
$classnames = array(
         
"Префект" => "prf",
         
"Ученик" => "stu",
       ;);
     while(
$row mysql_fetch_assoc($result)) {
         echo 
"<tr class='" $classnames[$row['stat']] . "'>"
         echo 
"<td>" . (++$num) . "</td>";
         echo 
"<td>{$row['nick']}</td>";
         echo 
"<td><a href=\"\" \"openwin('inform.php?id=".$row[id]."');return false\">Информация</a></td>";
         echo 
"<td>{$row['course']}</td>";
         echo 
"<td>{$row['points']}</td>";
         echo 
"</tr>";
     }
     echo 
"</table>";
     
$result mysql_query("SELECT COUNT(*) FROM test WEHRE WHERE faculty='" mysql_escape_string($_GET['faculty']) . "' limit 1");
     
$rez mysql_fetch_row($result);

$add_faculty =isset($_GET['faculty']) ? $_GET['faculty']."&" "" ;
     
shownumerlist($page$rez[0], $gb_on_page$_SERVER[PHP_SELF]."?".$add_faculty);

}
?>

02.06.2008 в 12:54

Да, моя вина.
$add_faculty =isset($_GET['faculty']) ? "faculty=".$_GET['faculty']."&" : "" ;
10.11.2010 в 14:12

Простой пример Ajax для чайников, по нажатию на кнопку-картинку данные из html-страницы записываются в базу и сразу же выводятся на экран без перезагрузки страницы в виде таблицы. Маленький понятный код, в PHP используется метод $_POST, SQL запросы, функция createXMLHttp(), и немного стилей, все только нужное для понимания ajax, исчерпывающие комментарии в строках. Научитесь создавать динамические web-страницы без лишних громоздких библиотек своими руками. Работа со связкой PHP,MySQL,Apache, Javasсript становится легка и понятна каждому. Поняв суть данного примера вы в дальнейшем сможете создавать Ajax-страницы любой сложности. По этой программе можно научиться PHP MySQL и AJAX одновременно.

качать тут:
www.plati.ru/asp/pay.asp?idd=1040991

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail