|
|
|
| Добрый день!
На страничке, где выводится информация предприятия, предлагается сообщить об ошибке.
<form action="pu_action.php" method="get" name="f2">
<p>Заметили неточность - сообщите об ошибке!</p>
<input type='hidden' name='title' value='<?php echo $myrow3['title']; ?>'>
<input type='hidden' name='licence' value='<?php echo $myrow3['licence']; ?>'>
<input type='hidden' name='accreditation' value='<?php echo $myrow3['accreditation']; ?>'>
<input type='hidden' name='address' value='<?php echo $myrow3['address']; ?>'>
<input type='hidden' name='tel' value='<?php echo $myrow3['tel']; ?>'>
<input type='hidden' name='fax' value='<?php echo $myrow3['fax']; ?>'>
<input type='hidden' name='site' value='<?php echo $myrow3['site']; ?>'>
<input type='hidden' name='email' value='<?php echo $myrow3['email']; ?>'>
<input type='hidden' name='full_name' value='<?php echo $myrow3['full_name']; ?>'>
<input type='hidden' name='short_name' value='<?php echo $myrow3['short_name']; ?>'>
<input type='hidden' name='id_pu' value='<?php echo $myrow3['id_pu']; ?>'>
<input type='submit' name='submit' value='Сообщить'></form>
|
Далее выводится форма, в которой можно внести изменения
<form name="add" method='post' action='pu_add.php'>
<table width="650" cellspacing="5" cellpadding="5">
<tr>
<td width="200" valign="top"><b>Название организации:</b></td>
<td width="550" align="left" style='background-color:#f0f0f0'>
<input value= "<?php echo $_GET['title']; ?>" type="text" name="title" size="80" style='border:1px solid red'>
<p class=sm><i><strong>Например:</strong></i> Профессиональное училище № 29 п. Вурнары</p>
</td>
</tr>
...
</table>
<input name="id_pu" type="hidden" value="<?php echo $_GET['id_pu']; ?>">
<br>
<center>
<label>
<input type="submit" name="submit" id="submit" value="Сохранить изменения">
<strong><font color="#FF0000">Организация будет добавлена после проверки редактором портала.</font></strong>
</label>
</center>
</form>
|
Далее еще один файл записи данных в БД
if (isset($_POST['title']))
{$title = $_POST['title']; if ($title == '') {unset ($title);} }
if (isset($_POST['licence']))
{$licence = $_POST['licence']; if ($licence == '') {unset ($licence);}}
if (isset($_POST['accreditation']))
{$accreditation = $_POST['accreditation']; if ($accreditation == '') {unset ($accreditation);}}
if (isset($_POST['address']))
{$address = $_POST['address']; if ($address == '') {unset ($address);}}
if (isset($_POST['tel']))
{$tel = $_POST['tel']; if ($tel == '') {unset ($tel);}}
if (isset($_POST['fax']))
{$fax = $_POST['fax']; if ($fax == '') {unset ($fax);}}
if (isset($_POST['site']))
{$site = $_POST['site']; if ($site == '') {unset ($site);}}
if (isset($_POST['email']))
{$email = $_POST['email']; if ($email == '') {unset ($email);}}
if (isset($_POST['full_name']))
{$full_name = $_POST['full_name']; if ($full_name == '') {unset ($full_name);}}
if (isset($_POST['short_name']))
{$short_name = $_POST['short_name']; if ($short_name == '') {unset ($short_name);}}
if (isset($_POST['id_pu']))
{$id_pu = $_POST['id_pu']; if ($id_pu == '') {unset ($id_pu);}}
?>
|
<?php
if (isset($title) && isset($licence) && isset($accreditation) && isset($address) && isset($tel)
&& isset($fax) && isset($site) && isset($email) && isset($full_name) && isset($short_name)
&& isset($id_pu))
{
/*Здесь мы пишем, что можно заносить информацию в базу*/
$result = mysql_query ("UPDATE bd SET title='$title', licence='$licence',
accreditation='$accreditation', address='$address', tel='$tel', fax='$fax', site='$site', email='$email',
full_name='$full_name', short_name='$short_name' WHERE id_pu=$id_pu");
if ($result == 'true') {echo "<p>Информация о вашем ПУ обновлена!</p>";}
else {echo "<p>Информация о вашем ПУ не обновлена!</p>";}
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому рубрика не может быть добавлена в базу</p>";
}
?>
|
Код работает. Запись вносится в БД. НО вот в чем дело - любой может внести коррективы, я имею ввиду это может быть не представитель той самой организации. Поэтому необходимо сразу не записывать в БД, а проверять в начале модератором.
В соседней ветке предлагалось модератору сделать интерфейс, чтобы после одобрения из доп. таблицы данные абдейтились в основной, а в доп. либо грохать, либо оставлять для потомков.
А как это сделать практически? С учетом, что в нынешней есть и другие поля (код города, региона и т.д.), которые не обновляются в вышеизложенном запросе.
И может есть более простое решение с использованием уже готового запроса через UPDATE? | |
|
|
|
|
|
|
|
для: usa
(08.12.2011 в 14:53)
| | Просто не трогать эти поля да и все.
Можно их даже убрать из правки | |
|
|
|
|
|
|
|
для: Aidaho
(08.12.2011 в 15:07)
| | жду ответа как решить поставленную задачу | |
|
|
|
|
|
|
|
для: usa
(10.12.2011 в 00:35)
| | Чувствуется твердая рука Е.Попова...
<?
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset ($title);} }
..........
$title=!empty($_POST['title']) ? trim($_POST['title']) : NULL;
if (isset($title) && isset($licence) && isset($accreditation));
............
if (isset($title && $licence && $accreditation));
|
кстати пост http://forum.profit-partner.ru/viewtopic.php?t=2435&p=28160#p28183
short_name='$short_name' WHERE id=$" . mysql_real_escape_string($id) . "");
|
содержит ошибку
WHERE `id`='".intval($id)."' ");
|
а по поводу вопроса.....распределите права доступа к БД и не надо никаких доп таблиц и модерации админом... | |
|
|
|
|
|
|
|
для: SerG7
(10.12.2011 в 15:09)
| | и не надо никаких доп таблиц и модерации админом
а вам что жалко немного места на диске?
и даже если не принимать во внимание участие модератора, то всегда в любой момент можно посмотреть историю изменения и "откатить" до нужного состояния
опять же главная проблема не в этом, а в том что автор и сам до конца не знает чего он хочет и как это должно работать, написание кода это примерно 15% всей работы, остальное это проектирование и составление алгоритма
и если Попов сказал "плодите и размножайте", то никому неизвестный я всегда настаивал на том что необходимо основательно погрузиться в теорию и чтение книг прежде чем кодить в темную голову :) | |
|
|
|
|
|
|
|
для: Valick
(10.12.2011 в 19:25)
| | Насчет истории запросов клиента и истории модерации полностью согласен ... | |
|
|
|
|
|
|
|
для: usa
(08.12.2011 в 14:53)
| | Ну и обновляйте в основной таблице только те поля которые нужны , в запросе UPDATE не обязательно же должны участвовать все поля.. А так можно обойтись без дополнительной таблицы создать к основной таблице еще одно свойство например check_company установить тип данных BOOLEAN. 0-организация еще не одобрена, 1- одобрена.
P.S в коде не видно элементарных проверок данных перед выполнением sql запроса... они у Вас есть ?
Да еще в функции isset, переменные можно перечислять через запятую. | |
|
|
|
|
|
|
|
для: mirage
(10.12.2011 в 11:24)
| |
P.S в коде не видно элементарных проверок данных перед выполнением sql запроса... они у Вас есть ?
|
Вот эта проверка достаточна?
$result = mysql_query ("UPDATE bd SET title='$title', licence='$licence', accreditation='$accreditation',
address='$address', tel='$tel', fax='$fax', site='$site',
email='$email', full_name='$full_name', short_name='$short_name'
WHERE id=$" . mysql_real_escape_string($id) . "");
|
Еще вопрос. Вы писали
создать к основной таблице еще одно свойство например check_company установить тип данных BOOLEAN. 0-организация еще не одобрена, 1- одобрена.
BOOLEAN - значение ставить 1? А значение по умолчанию какое поставить? Или изначальные все данные, которые в БД сейчас ставть 1 - одобрены. А потом к примеру как узнать что кто-то изменил данные? | |
|
|
|