[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