[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма редактирования определенного заказа
WisesT
Приветствую!
Есть у меня страничка, где выводятся заказы и их можно редактировать.
Свернутый текст
<?

/* Соединяемся с базой данных */
$hostname = "192.168.1.160"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = "753951"; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "dimex"; // название базы данных

/* Таблица MySQL, в которой хранятся данные */

$table = "zakazy";

/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

// Переменная хранит число сообщений выводимых на станице
$num = 80;
// Извлекаем из URL текущую страницу
$page = !empty($_GET['page']) ? $_GET['page'] : NULL;
//$page = $_GET['page'];
// Определяем общее число сообщений в базе данных

$result = mysql_query("SELECT COUNT(*) FROM zakazy");
$posts = mysql_result($result, 0);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю

if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения

$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT *, DATE_FORMAT(`time`, '%d-%m-%Y %H:%i:%s') as `formatTime`, DATE_FORMAT(`na_kogda`, '%d-%m-%Y') as `formatTime1` FROM zakazy LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))

/* Если была нажата кнопка редактирования, вносим изменения */
if(@$_POST['submit_edit']) {
$na_kogda = date('Y-m-d', strtotime($_POST['test_na_kogda']));
$query = "UPDATE $table SET gotovnost='{$_POST['test_gotovnost']}', firma='{$_POST['test_firma']}', `na_kogda` = '".$na_kogda."', adress='{$_POST['test_adress']}', imya='{$_POST['test_imya']}', tel='{$_POST['test_tel']}', ves='{$_POST['test_ves']}', kuda='{$_POST['test_kuda']}', oplata='{$_POST['test_oplata']}', primechaniya='{$_POST['test_primechaniya']}', prinyal='{$_POST['test_prinyal']}', kurier='{$_POST['test_kurier']}', status='{$_POST['test_status']}' WHERE nomer='{$_POST['update']}'";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die (mysql_error());
}

// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./update_data.php?page=1><<</a>
<a href= ./update_data.php?page='
. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./update_data.php?page='. ($page + 1) .'>></a>
<a href= ./update_data.php?page='
.$total. '>>></a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./update_data.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./update_data.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./update_data.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./update_data.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC
\"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=
\"http://www.w3.org/1999/xhtml\">

<head>
<meta http-equiv=
\"Content-Type\" content=\"text/html; charset=windows-1251\">


<title>Редактирование заказов</title>

<style type=
\"text/css\">

</style>
<META http-equiv='refresh' content='60,http://192.168.1.10/update_data.php'>
</head>

<body>


<center>

<table width=
\"100%\" height=\"100%\">


<tr>
<td colspan=
\"2\" background=\"images/earth.jpg\" width=\"100%\" height=\"250px\">
<center>
<script src=
\"http://remarc.ucoz.ru/media/?t=video;w=200;h=150;f=http%3A%2F%2Fremarc.ucoz.ru%2Fflash%2Fclock_2004-1.swf\" type=\"text/javascript\"></script>
<img src=
\"images/logo.png\" width=\"750\" height=\"120\" >
<img src=
\"images/shar.png\" width=\"150px\" height=\"150px\" >

</center></td>

</tr>

<tr>

<td width=
\"205px\" valign=\"top\" >
<div align=
\"left\" id=\"ss\" style=\"width:205px; height:490px;\">
<div align=
\"left\" style=\"padding: 0 0px\">
<div>
<a href=
\"http://192.168.1.10/index.html\" ><img src=\"images/button_main.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/insert.php\"><img src=\"images/button_new.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/out_today.php\"><img src=\"images/button_today.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/out_tmrw.php\"><img src=\"images/button_tmrw.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/out_old.php\"><img src=\"images/button_old.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/out.php\"><img src=\"images/button_all.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/update_data.php\"><img src=\"images/button_edit.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/del_data.php\"><img src=\"images/button_del.png\"></a>
</div>

<div>
<a href=
\"http://192.168.1.10/search.php\"><img src=\"images/button_search.png\"></a>
</div>
<fieldset style=
\"display:inline;\">
<legend>Поиск в Google</legend>
<form action=
\"http://www.google.com/search?\" target=\"_blank\" method=\"get\" style=\"margin:0px;\">
<input type=
\"text\" id=\"q\" name=\"q\">
<input type=
\"submit\" value=\"Поиск\">
</form>
</fieldset>
</td>

<td valign=
\"top\" width=\"100%\"><table width=\"100%\" border=\"1\">
<tr>
<td><div align=
\"center\">
<p><strong>Изменение заказа</strong></p>
<p>После сохранения данных - обновите страничку (F5)</p>
<p>Также страничка обновляется автоматически через 1 мин. Ее можно обновить самостоятельно, нажав (F5)</p>
</div></td>
</tr>
<tr><td>

"
);

// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;


/* Цикл вывода данных из базы конкретных полей */
//for($i = 0; $i < $num; $i++)

//while ($row = mysql_fetch_array($res))

for($i = 0; $i < $num; $i++):?>

<META http-equiv='refresh' content='60,http://192.168.1.10/update_data.php'>
<
form action="update_data.php" method="post" name="edit_form">
<
input type="hidden" name="update" value="<?php echo $postrow[$i]["nomer"]?>" />

<
table width="100%" border="1" cellpadding="0" cellspacing="0">
<
tr>
<
td colspan="2" style="border-bottom:solid 1px #CCCCCC;"><b><i><div nomer="num"><pre><font color="#0000FF">Номер заказа: </font><font size=5> <?php echo $postrow[$i]["nomer"]?></font> <font color="#0000FF"> Дата: </font> <?php echo $postrow[$i]['formatTime']?></pre></div></b></i></td>
</
tr>
<
tr>
<
td bgcolor="#1C86EE" width="150">На когда:</td><td><input type="text" value="<?php echo $postrow[$i]['formatTime1'] ?>" name="test_na_kogda"/></td>
<
td bgcolor="#1C86EE" width="150">Готовность заказа:</td><td><input type="text" value="<?php echo $postrow[$i]['gotovnost']?>" name="test_gotovnost"/></td>
<
td bgcolor="#1C86EE" width="150">Фирма:</td><td><input type="text" value="<?php echo htmlspecialchars($postrow[$i]['firma'])?>" name="test_firma"/></td>
</
tr>


<
tr>
<
td bgcolor="#1C86EE">Адресс:</td><td><input type="text" value="<?php echo $postrow[$i]['adress']?>" name="test_adress"/></td>
<
td bgcolor="#1C86EE">Имя:</td><td><input type="text" value="<?php echo $postrow[$i]['imya']?>" name="test_imya"/></td>
<
td bgcolor="#1C86EE">Телефон:</td><td><input type="text" value="<?php echo $postrow[$i]['tel']?>" name="test_tel"/></td>
</
tr>

<
tr>
<
td bgcolor="#1C86EE">Вес:</td><td><input type="text" value="<?php echo $postrow[$i]['ves']?>" name="test_ves"/></td>
<
td bgcolor="#1C86EE">Куда:</td><td><input type="text" value="<?php echo $postrow[$i]['kuda']?>" name="test_kuda"/></td>
<
td bgcolor="#1C86EE">Оплата:</td><td>
<
select name="test_oplata">
<
option value="Выбрать" <?php if ($postrow[$i]['oplata'] == "Выбрать") echo 'selected="selected"'?> >Выбрать</option>
<
option value="Нал" <?php if ($postrow[$i]['oplata'] == "Нал") echo 'selected="selected"'?> >Наличный расчет</option>
<
option value="Безнал" <?php if ($postrow[$i]['oplata'] == "Безнал") echo 'selected="selected"'?> >Безналичный расчет</option>
<
option value="Получатель" <?php if ($postrow[$i]['oplata'] == "Получатель") echo 'selected="selected"'?> >Оплата получателем</option>
</
select>
</
td>
</
tr>

<
tr>
<
td bgcolor="#1C86EE">Примечания:</td>
<
td><input type="text" value="<?php echo $postrow[$i]['primechaniya']?>" name="test_primechaniya"/></td>
<
td bgcolor="#1C86EE">Принял:</td>
<
td>
<
select name="test_prinyal">
<
option value="Алена" <?php if ($postrow[$i]['prinyal'] == "Алена") echo 'selected="selected"'?> >Алена</option>
<
option value="Дима" <?php if ($postrow[$i]['prinyal'] == "Дима") echo 'selected="selected"'?> >Дима</option>
<
option value="Катя" <?php if ($postrow[$i]['prinyal'] == "Катя") echo 'selected="selected"'?> >Катя</option>
<
option value="Маша Г" <?php if ($postrow[$i]['prinyal'] == "Маша Г") echo 'selected="selected"'?> >Маша Г</option>
<
option value="Маша Б" <?php if ($postrow[$i]['prinyal'] == "Маша Б") echo 'selected="selected"'?> >Маша Б</option>
<
option value="Оксана" <?php if ($postrow[$i]['prinyal'] == "Оксана") echo 'selected="selected"'?> >Оксана</option>
<
option value="Света" <?php if ($postrow[$i]['prinyal'] == "Света") echo 'selected="selected"'?> >Света</option>
<
option value="Юля" <?php if ($postrow[$i]['prinyal'] == "Юля") echo 'selected="selected"'?> >Юля</option>
<
option value="Выбрать" <?php if ($postrow[$i]['prinyal'] == "Выбрать") echo 'selected="selected"'?> >Выбрать</option>
</
select>
</
td>
<
td bgcolor="#1C86EE">Курьер:</td>
<
td>
<
select name="test_kurier">
<
option value="Не указан" <?php if ($postrow[$i]['kurier'] == "Не указан") echo 'selected="selected"'?> >Не указан</option>
<
option value="Вова" <?php if ($postrow[$i]['kurier'] == "Вова") echo 'selected="selected"'?> >Вова</option>
<
option value="Владимир" <?php if ($postrow[$i]['kurier'] == "Владимир") echo 'selected="selected"'?> >Владимир</option>
<
option value="Антон" <?php if ($postrow[$i]['kurier'] == "Антон") echo 'selected="selected"'?> >Антон</option>
<
option value="Антон пеш" <?php if ($postrow[$i]['kurier'] == "Антон пеш") echo 'selected="selected"'?> >Антон пеш</option>
<
option value="Рома" <?php if ($postrow[$i]['kurier'] == "Рома") echo 'selected="selected"'?> >Рома</option>
<
option value="Игорь" <?php if ($postrow[$i]['kurier'] == "Игорь") echo 'selected="selected"'?> >Игорь</option>
<
option value="Костя" <?php if ($postrow[$i]['kurier'] == "Костя") echo 'selected="selected"'?> >Костя</option>
<
option value="Олег" <?php if ($postrow[$i]['kurier'] == "Олег") echo 'selected="selected"'?> >Олег</option>
<
option value="Леша И." <?php if ($postrow[$i]['kurier'] == "Леша И.") echo 'selected="selected"'?> >Леша И.</option>
<
option value="Л" <?php if ($postrow[$i]['kurier'] == "Л") echo 'selected="selected"'?> >Л</option>
<
option value="Паша" <?php if ($postrow[$i]['kurier'] == "Паша") echo 'selected="selected"'?> >Паша</option>
<
option value="Степа" <?php if ($postrow[$i]['kurier'] == "Степа") echo 'selected="selected"'?> >Степа</option>
<
option value="Дима" <?php if ($postrow[$i]['kurier'] == "Дима") echo 'selected="selected"'?> >Дима</option>
<
option value="Женя" <?php if ($postrow[$i]['kurier'] == "Женя") echo 'selected="selected"'?> >Женя</option>
</
select>
</
td>

<
tr>
<
td bgcolor="#1C86EE">Статус:</td>
<
td>
<
select name="test_status">
<
option value="Не указано" <?php if ($postrow[$i]['status'] == "Не указано") echo 'selected="selected"'?> >Не указано</option>
<
option style="color: green; font-weight: bold;" value="Сообщено" <?php if ($postrow[$i]['status'] == "Сообщено") echo 'selected="selected"'?> >Сообщено</option>
<
option style="color: OrangeRed; font-weight: bold;" value="Забрано" <?php if ($postrow[$i]['status'] == "Забрано") echo 'selected="selected"'?> >Забрано</option>
<
option style="color: red; font-weight: bold;" value="Отменено" <?php if ($postrow[$i]['status'] == "Отменено") echo 'selected="selected"'?> >Отменено</option>

</
select>
</
td>
</
tr>
<
tr>
<
td colspan="2" align="center">
<
input type="submit" name="submit_edit" class="buttons" style="background-color:#BC8F8F" value="Сохранить изменения"/>

</
td>
</
tr>
</
table>
</
form>

<?php endfor ?>

<?php

// <input type="button" name="nazad" class="buttons" value="На главную" onclick="self.location.href='http://192.168.1.10';"/>
// Вывод меню

echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

/* Закрываем соединение */
mysql_close();

/* Выводим ссылку возврата */
//echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");


?>
</td>
</
tr>
</
table>



</
td>
</
tr>


</
table>

</
center>

</
body>
</
html>

Все работает, все хорошо. Но есть некоторые неудобства.
После редактирования каждого заказа, нужно сохранять изменения и только потом переходить к след. заказу.

Нужно сделать одно из двух:
1. Можно сделать 1 кнопку "Сохранить" под все заказы на страницу, но это грозит постоянным пересохранением большого колличества даных.
2. Этот вариант меня интересует более.
Как сделать такую формочку, что бы в ней было поле ввода номера заказа, а далее выводилась форма редактирования именно этого заказа. Ну что-то вроде where nomer="то что введено в поле".
Ну и соответственно, что бы можно было данные отредактировать и пересохранить в бд.
Спасибо. Как всегда)





Спустя 16 минут, 3 секунды (26.01.2012 - 13:01) h234 написал(а):
Цитата
Как сделать такую формочку, что бы в ней было поле ввода номера заказа, а далее выводилась форма редактирования именно этого заказа. Ну что-то вроде where nomer="то что введено в поле".
Ну и соответственно, что бы можно было данные отредактировать и пересохранить в бд.

Собственно текстовое поле и кнопка, по нажатии на кнопку переходим на другую форму с помощью header('location: '. $where_to_go)); А в $_GET например передаем введенный номер.

Далее запрашиваем в базе исходную строку (например, введенный номер соответствует id):
SELECT * FROM `zakazy` WHERE `id` = $number

Результат запроса распихиваем по текстовым полям, чтобы их можно было отредактировать.
Затем UPDATE с новыми значениями.

Спустя 13 минут, 30 секунд (26.01.2012 - 13:14) UnWind написал(а):
В общем не буду полностью редактировать код, думаю для форума это не совсем уместно.
Но сейчас в данном сообщении распишу то, что выше предложил сделать h234

У нас есть таблица пользователей, к примеру:
CREATE TABLE users (
id INT AUTO INCREMENT,
login VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
password VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY(id)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Список пользователей';


Допустим в таблице users у нас есть юзверь, который забыл свой пароль и хочет изменить логин:
INSERT INTO users(password) SET VALUES('UnWind', '123');


Но мы заранее же это предусмотрели и создали форму, через которую нам удобно будет это сделать (Файл updateUserInfo.php) :
<?php
/* Файл подключения к серверу MySQL */
include "mysql.connect.php";

/* Идентифицируем переменные */
$id = !empty( $_GET['id'] ) ? $_GET['id'] : NULL;
$action = !empty( $_GET['action'] ) ? $_GET['action'] : NULL;
$password = !empty( $_POST['password'] ) ? $_POST['password'] : NULL;

/* Проверяем существует ли пользователь updateUserInfo.php?id=1 */
if( mysql_num_rows( mysql_query("SELECT * FROM users WHERE id=" . mysql_escape_string( $id ) . ";", $mysqlConnect) ) != 0) {

/* Проверяем, действительно ли пользователь хочет отредактировать пароль */
if($action == "update") {
mysql_query("UPDATE users SET password=" . mysql_escape_string( $password ) . " WHERE id=" . mysql_escape_string( $id ) . ";", $mysqlConnect);
echo 'Пароль успешно изменен';
mysql_close($mysqlConnect);
exit;
}

/* Выводим данные о пользователе в массив $user, из которого в дальнейшем выведем их в форму */
$user = mysql_fetch_row( mysql_query("SELECT id,login,password FROM users WHERE id=" . mysql_escape_string( $id ) . ";", $mysqlConnect) );
echo '<form action="updateUserInfo.php?action=update&id=' . $id . '" method="POST"> Пользователь: ' . $user[1] . ' <br />
Пароль: <input type="text" name="password" value="'
. $user[2] . '" />
<br /> <input type="submit" value="Изменить пароль" /> </form>'
;

}
else {
echo 'Такой пользователь не найден';
mysql_close($mysqlConnect);
exit;
}


На всякий случай файл mysql.connect.php:
<?php
$mysqlConnect = mysql_connect("localhost", "username", "userpassword") or die( mysql_error() );
mysql_select_db("WILD_CAT") or die( mysql_error() );

И вот мы изменили пароль через форму ;)
И не забываем ставить плюсики! ;)

P.S.:> В данном примере пароль не шифрован в md5, и пример с паролем использован лишь для наглядности. При создании действительной базы пользователей, хорошо фильтруйте пароль пользователей воизбежании взломов учеток! И так же хорошо фильтруйте переменные - если например переменная $id в данном скрипте имеет место принимать только целые числа, то ничего кроме целых чисел нельзя давать вставлять в нее.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.