[Comm] Программирование на PHP.
Alexey Morsov
=?iso-8859-1?q?samurai_=CE=C1_ricom=2Eru?=
Чт Май 27 11:18:24 MSD 2004
Shushenskoe USZN wrote:
> Alexey Morsov пишет:
>
>> Shushenskoe USZN wrote:
>> У вас вообще хоть какой-т озапрос выводит? может у вас ошибка в
>> запросе? У меня были ситуации когда выводилась пустая талица именоо
>> из-за неправильно составленного запроса.
>
> Алексей, спасибо за пример, буду разбираться.
>
> Все-таки мне нужно почитать побольше документации.
>
> В этом скрипте, вобщем то все работает, по прошлой Вашей подсказке я
> смог внести
> нужные исправления и данные запроса выводятся.
> Меня больше волнует showedit.php, который не производит update,
> несмотря на то,
> что и об ошибках не сообщает.
> Я чего-то недопонимаю как это работает.
>
> 1.
> <?php
> include("header.inc.php");
> //Это понятно, вызываем скрипт, в котором производим подключение к базе
> postgres`а.
>
>
> 2.
> if ($update == "Y") {
> $sql_sel = "select * from table1";
> $sql_result = pg_exec($conn,$sql_sel)
> or die("мЕ ЛНЦС НРНАПЮГХРЭ ДЮММШЕ ! :-(");
> $row = pg_fetch_array($sql_result, 0);
> $nn = $row["nn"];
> $date_in = $row["date_in"];
> $sender = $row["sender"];
> $name_file = $row["name_file"];
> $date_out = $row["date_out"];
> $number_out = $row["number_out"];
> $opisanie = $row["opisanie"];
> $otmetka = $row["otmetka"];
> }
А где устанавливаеться $update?
> // Для чего этот запрос, толком не понимаю. Предполагаю - для
> отображения следующей записи
> из таблицы для редактирования (после того, как отработает обновление).
> Срабатывает после того, как нажата кнопочка Обновить, т.е.
> когда переменной update присваивается "Y".
>
> 3.
> if ($update == "Y") {
> $sql_up = "UPDATE table1 set date_in='$date_in', sender='$sender',
> name_file='$name_file', date_out='$date_out', number_out='$number_out',
> opisanie='$opisanie', otmetka='$otmetka' where nn=$nn";
Проверте в каком виде вы поставляете дату и в каком ее хочет
постгресс
> $sql_result = pg_exec($conn,$sql_up)
> or die("Проблемы ! :-(");
> }
> ?>
> // Это, собственно, и есть команда на обновление строки в таблице, но
> реально обновления не происходит.
> И ругани тоже нет. Отрабатывает, тоже, когда переменной update присвоено
> "Y".
>
>
>
> 4.
> <html>
> <body>
> <h2 style="text-align: center; background-color: rgb(255, 204,
> 0);">Заголовок .</h2>
> <title> Редактирование...</title>
> </body>
> </html>
> <p>
> // Ну это заголовок , с ним нет проблем.
>
> 5.
> <form action="<?php echo $PHP_SELF?>" method="post" title="Обновление
> ...">
> Дата вх : <input type="text" name="date_in" size=10 maxlength=10
> value="<?php echo $date_in ?>"> <br><br>
> Отправитель : <input type="text" name="sender" size=25 maxlength=25
> value="<?php echo $sender ?>" > <br><br>
> Файлы : <input type="text" name="name_file" size=25 maxlength=25
> value="<?php echo $name_file ?>" > <br> <br>
> Дата исх : <input type="text" name="date_out" size=10 maxlength=10
> value="<?php echo $date_out ?>" ><br><br>
> Исх номер : <input type="text" name="number_out" size=25 maxlength=25
> value="<?php echo $number_out ?>" ><br><br>
> Описание : <input type="text" name="opisanie" size=100 maxlength=100
> value="<?php echo $opisanie ?>" > <br><br>
> Отметка : <input type="text" name="otmetka" size=1 maxlength=1
> value="<?php echo $otmetka ?>" > <br><br>
> Порядковый номер : <input type="text" name="nn" size=9 maxlength=9
> value="<?php echo $nn ?>" > <br><br>
> <input type="submit" name="update" value="Обновить ...">
> <INPUT type="hidden" name="update" value="Y">
Ну вот первое ой - у тебя два элемента с одним именеем - это ж не
радиобатоны... сделай скажем и вообще submit без name-а
обойдеться (читай w3c reference)
<input type=submit value="Обновить">
> </form>
> <body>
> // Так... Это форма для редактирования. Как я ее понимаю ?
> В соответствующих полях отображаются значения переменных(=значений из
> строки таблицы) из showno.php.
> Меняем какое-либо значение (значения). И что ? Переменные сразу
> запоминают новые значения ? Тогда почему
> не происходит обновления (пункт 3.) ?
Значения предаються скрипту указанному в <form action=".. в
массиве $_POST ... т.е. скажем значение твоего hidden объекта
update будет в $_POST["update"]... Видимо ты что-то с формой
html-овой напутал...
>
>
> 6.
> <h4 style="text-align: center;background-color: rgb(255, 204, 0);"><a
> href="./pochta.html"
> style="color: rgb(0, 0, 0);">В начало .</a></h4>
> </body>
> </html>
> // Это так себе, ссылочка.
>
> Проблема, как мне кажется, либо в п5. (переменные не принимают введенные
> с клавы значения),
> либо в п3. (не происходит обновления).
>
> P.S.: Поле nn в таблице table1 имеет тип SERIAL.
>
> Заранее благодарю.
>
Вот тебе моя форма (менющка):
<form action="main.php" target="main" method="post">
<input type="hidden" name="type" value="<?php echo
$type ?>">
<?php if ($type == "history") {?>
<td class="menu" align=left>
<?php if ($_POST['style'] == "short" OR
$_POST['style'] == NULL) {?>
<input type="radio" name="style" value="short"
checked>Кратко
<input type="radio" name="style" value="full">Все
.... и так далее
<td class="menu" align=right><input type=submit value="Обновить">
</tr>
</form>
Вот наш сабмит...
а теперь в "main.php"
я это анализирую:
if ($_POST != NULL) {
if ($_POST['type'] == "history") { ?>
<center>
<?php print_menu(); ?>
<tr><td colspan=<?php echo $colnum;?> align=center
valign=top>
<?php $startday = rustime2sqltime($_POST['startday']);
$endday = rustime2sqltime($_POST['endday']);
print_history($_POST['style'], $startday, $endday);?>
</center><?php
}
if ($_POST['type'] == "proxy") {?>
ну и так далее...
--
Всего наилучшего,
Системный Администратор ЗАО "ИК "РИКОМ-ТРАСТ"
Алексей Морсов
http://www.ricom.ru
http://www.fondmarket.ru
Подробная информация о списке рассылки community