|
|
|
| Всем доброго времени суток
Сижу уже около недели над такой проблемой. На страницу выводится выборка с базы данных около 100 тыс записей, все работает нормально, прикрутил постраничную навигацию, но проблема в том как пользователю перейти на 25122 запись? Для этого прикрутил переход на конкретную запись и дальнейшее ее редактирование в новом окне, но как сделать переход на эту запись в первом окне. Нижу приведу скороченный код. Всем спасибо за ответы.
<div class="header"><h1 align="center">База даних "Гербарій судинних рослин" (LWS) <br />Державного природознавчого музею НАН України</h1>
</h1></div>
<?
$query = "SELECT * FROM $table order by inv_n asc";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
// Переменная хранит число сообщений выводимых на станице
$num = 1;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
$total=$num_rows/$num;
$total=ceil($total);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
// НАВІГАЦІЯ
//Теперь надо организовать навигацию. Формируем составляющие будущей навигации.
//Коды стрелки «в начало» и «назад» поместим в одну переменную, также поступим и со стрелками «в конец» и «вперед».
// Проверяем нужны ли стрелки назад
$pervpage = "<a href= ./resyna_e.php?page=1><img id='nav' class='tooltip' src='block/icons/up.png'
title='Перший запис' /></a>";
$page_left="<a href= ./resyna_e.php?page=". ($page - 1) ."><img id='nav' class='tooltip' src='block/icons/left.png' title='На запис наліво' /></a>";
// Проверяем нужны ли стрелки вперед
$nextpage = " <a href= ./resyna_e.php?page=". ($page + 1) ."><img id='nav' class='tooltip' src='block/icons/right.png'
title='На запис вправо' /></a>
<a href= ./resyna_e.php?page=" .$total. "><img id='nav' class='tooltip' src='block/icons/down.png' title='Останній запис' /></a>";
// Находим две ближайшие станицы с обоих краев, если они есть
//if($page - 3 > 0) $page3left = " <a href= ./form_edit.php?page=". ($page - 3) .">". ($page - 3) ."</a> | ";
//if($page - 2 > 0) $page2left = " <a href= ./form_edit.php?page=". ($page - 2) .">". ($page - 2) ."</a> | ";
//if($page - 1 > 0) $page1left = "<a href= ./form_edit.php?page=". ($page - 1) .">". ($page - 1) ."</a> | ";
//if($page + 3 <= $total) $page2right = " | <a href= ./form_edit.php?page=". ($page + 3) .">". ($page + 3) ."</a>";
//if($page + 2 <= $total) $page2right = " | <a href= ./form_edit.php?page=". ($page + 2) .">". ($page + 2) ."</a>";
//if($page + 1 <= $total) $page1right = " | <a href= ./form_edit.php?page=". ($page + 1) .">". ($page + 1) ."</a>";
// Вывод меню
//@print($pervpage.$page3left.$page2left.$page1left."<b>".$page."</b>".$page1right.$page2right.$page3right.$nextpage);
echo"<br /><br />";
//просте меню просто кнопки
//@print($pervpage.$page3right.$nextpage);
//ВИВІД ТАБЛИЦІ З ДАНИМИ
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM $table order by inv_n asc LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow $msg=array();
while ( $msg[] = mysql_fetch_array($result))
?>
<div class="main" style="position:relative;top:-25px;">
<span>
<!--Здесь идет переход на нужную запись-->
<form action="goto3.php" method=POST>
Введіть номер запису <input onClick="this.className='onm'" class="tooltip" type="text"
name="inv_n" size="7" title="Введіть номер запису" />
<input type="submit" value="Перейти до запису" />
</form>
</span>
<!-- Здесь вывод информации с БД-->
<form action="update.php" method=POST>
<!--Icons-->
<div style="border:solid 1px red;margin-top:5px;margin-bottom:5px;background-color:gray;height:45px;">
<input id="nav" type="image" src="block/icons/save.png" alt="Зберегти запис" class="tooltip" title="Зберегти запис">
<? @print($pervpage.$page_left.$nextpage);?>
<a href="select.php"><img class="tooltip" id="nav" src="block/icons/select_all.png" title="Вибрати всі записи" /></a>
<a href="#"><img class="tooltip" id="nav" src="block/icons/printer.png" title="Друкувати вибрану картку" /></a>
<a href="#"><input class="tooltip" id="nav" type="image" src="block/icons/delete.png" title="Видалити запис" /></a>
<span style="position:relative;width:40%;top:0px;left:-160px;*left:-220px;">
<span style=";" class="bttn_act"><a href="resyna.php" style="text-decoration:none;color:black;position:relative">Додати запис</a></span>
<span style="" class="bttn_nact"><a href="resyna_e.php?page=1" style="text-decoration:none;color:black;*width:140px;">Редагувати записи</a></span>
<span style="*width:170px;position:relative;" class="bttn_act"><a href="search.php" style="text-decoration:none;color:black;">Пошук в базі даних</a></span>
<!--<a href="javascript:closeWindow();">Close Window</a>-->
</span>
</div>
<!--Icons-->
<div class="left">
<!--Left-->
<div class="block">
<span class="klass">Ідентифікаційна частина (нумерація об'єкта)</span>
<br>
Інвентарний номер
<? for($i = 0; $i < $num; $i++)
{?>
<input type="hidden" name="id" <? echo 'value="'.$msg[$i]['id'].'" />'; ?>
<span style="position:relative;left:25px;">
<input onClick="this.className='onm'" type="text" name="inv_n" <? echo 'value="'.$msg[$i]['inv_n'].'" />';?></span>
</div>
<div class="block" style="top:5px;position:relative;height:200px;*height:240px;">
<span class="klass">Дефініційна частина (визначення, назва об'єкта)</span>
<br>
Відділ
<span style="position:relative;left:130px;">
<input onClick="this.className='onm'" type="text" name="h_taxon" id="HTaxon" <? echo 'value="'.$msg[$i]['h_taxon'].'" />';?>
</span>
<br />
<input type="text" name="photo" <? echo 'value="'.$msg[$i]['photo'].'" />';?>
<input type="text" name="map" <? echo 'value="'.$msg[$i]['map'].'" />';}?>
</div>
</div>
<!--Right-->
</form>
</div>
|
| |
|
|
|
|
|
|
|
для: bibika
(04.06.2010 в 06:13)
| | А что означает "сделать переход на эту запись в первом окне" - отображение ссылки на эту запись в навигаторе в первых его числах? | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 06:19)
| | Это трудно пояснить словесно. В первом окне идет интерфейс правки информации в БД. Поскольку в ней много записей, я решил сделать переход на отдельную запись, чтоб пользователь не жал 100 раз на кнопку далее чтоб перейти на 100 запись и ее поправить. Но пока у меня вышло только вывести эту запись в новое окно (это первая форма в коде), а я спрашивал есть ли возможность отобразить эту запись в первом окне и ее поправить.
То есть такой алгоритм пользователь вводит номер записи например 100, жмет перейти, и в этом же окне она отображается для следующей правки.
Спасибо за скорый ответ | |
|
|
|
|
|
|
|
для: bibika
(04.06.2010 в 07:18)
| | Ну делайте переход на эту же страницу, но с добавлением формы для редактирования. Если же без перехода, то либо средствами Ajax, либо с помощью iframe, под соответсвующей записью можно открыть форму для редактирования. | |
|
|
|
|
|
|
|
для: sim5
(04.06.2010 в 07:26)
| | >Ну делайте переход на эту же страницу, но с добавлением формы для редактирования. Если же без перехода, то либо средствами Ajax, либо с помощью iframe, под соответсвующей записью можно открыть форму для редактирования.
Спасибо за ответ. Проблема в том, что на этой странице уже есть форма для редактирования, в которую помещены все записи от 1 и до конца доступные для редактирования. А я спрашиваю возможно ли параллельно с выводом этих записей получив от пользователя номер записи вывести ее в этой же форме? | |
|
|
|
|
|
|
|
для: bibika
(04.06.2010 в 07:56)
| | Да кто вам запрещает держать форму для ввода записи?
Вы открываете страницу, и проверяете:
если пришел запрос на редактирование (например, $_POST['num']), то выводите форму для редактирования, а нет, значит нет.
Далее без всяких условий выводите форму для ввода номера и остальное содержимое страницы.
Это разве трудно реализовать? | |
|
|
|
|
|
|
|
для: bibika
(04.06.2010 в 06:13)
| | Какой у вас первичный ключ в бд?
Чаще используется "id", отсюда и будем-с отталкиваться:
Когда выводите все записи, ставьте в ссылку с указанием этого id, например edit.php?id=$id, где $id - это переменная, содержащая первичный ключ из бд
В edit.php добавляете к запросу WHERE id = $id, вот так и вытащите нужную запись.
Если вам все это известно, то, даже прочитав другие посты, я не понимаю, в чем у вас проблема. | |
|
|
|
|
|
|
|
для: neadekvat
(04.06.2010 в 08:46)
| | Да спасибо. Уже разобрался. Еще раз спасибо за ответы. | |
|
|
|