Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формы и PHP 
:(
    Опции темы
maugli
Дата 3.9.2005, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Здраствуйте, встретился с такой проблемой!!!
Код

<? include "connect.php";
           $f=mysql_query("SELECT * FROM admins");
           while($d=mysql_fetch_array($f))
           {
             echo"
                       <form action='admin_admin.php' method='post' name='myform'>
            <table width='100%'  border='0' cellspacing='0' cellpadding='0'>
              <tr>
                <td width='32%'>Логин:<input type='text' name='name' value='".$d['name']."'></td>
                <td width='31%'>Пароль:<input type='text' name='pas' value='".$d['pas']."'></td>
                <td width='37%'>E-mail:<input type='text' name='email' value='".$d['email']."'></td>
              </tr>
            </table>
            <table width='100%'  border='0' cellspacing='0' cellpadding='0'>
              <tr>
                <td><div align='left'><a href=admin_admin.php?action=del&id=".$d['id'].">Удалить</a>&nbsp;&nbsp;<a href=admin_admin.php?action=obnov&id=".$d['id']." onclick=document.forms['myform'].submit()>Редактировать</a></div></td>
              </tr>
            </table>
          </form>
             ";
           }
           $action = (!empty($_GET['action'])) ? $_GET['action'] : null;
           if($action=='del')
           {
             mysql_query("DELETE FROM admins WHERE id=".$id."")or die(mysql_error());
           }
           if($action=='obnov' && $id != null)
           {
             $name = (!empty($_POST['name'])) ? $_POST['name'] : null;
             $pas = (!empty($_POST['pas'])) ? $_POST['pas'] : null;
             $email = (!empty($_POST['email'])) ? $_POST['email'] : null;
             if($name != null && $email != null && $pas != null ) 
             {
               mysql_query("UPDATE admins SET name='".$name."', pas='".$pas."', email='".$email."' ") or die(mysql_error());
             } else {
                     echo "<style color=red>Извините, но вы заполнили не все поля</style>";
                     }
           }
        ?>

У меня работает удаление, но не работает обновление. Даже условие не выполняется, похоже что-то с переменными, но я не знаю что. Помогите плиз, буду очень благодарен!!!
PM MAIL   Вверх
-=Ustas=-
Дата 4.9.2005, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



У тебя в запросе обновления не указан id-ишник. И что там у тебя за хлам проверок всяких, ИМХО лишний бесполезный код. Не проще ли вот так:
Код

if($action=='obnov') {
                $dArray = array();
                foreach ($_POST as $key => $value) {
                    if ($value == "") {
                        echo "<style color=red>Извините, но вы заполнили не все поля</style>";
                        exit();
                    } else {
                        $dArray[$key] = $value;
                    }
                }
                $sql = "UPDATE
                            admins
                        SET
                            name  = '".$dArray['name']."',
                            pas   = '".$dArray['pas']."',
                            email = '".$dArray['email']."'
                        WHERE
                            id = '".$_GET['id']."'";
                mysql_query($sql) or die(mysql_error());

           }



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
maugli
Дата 4.9.2005, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



-=Ustas=-, по поводу id я исправил, спасибо. Но суть проблемы в другом, у меня переменный, которые передаются через форму после нажатия на Редактировать пустые, и поэтому все обновляется на пустоту. Как решить эту проблему пробовал так
Код

<? $nik = (!empty($_GET['nik'])) ? $_GET['nik'] : null;
echo $_GET['nik']."yes"; ?>

Но увы, ничего не выводит! Помогите плз решить эту проблему, заранее спасибо!!!
PM MAIL   Вверх
-=Ustas=-
Дата 4.9.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата

onclick=document.forms['myform'].submit()

Я так понимаю, что это отправка формы обычной ссылкой вместо кнопки! В таком случае, у тебя _GET-массив будет пустой, так как у формы метод _POST. Проверяй и подставляй _POST-переменные.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
maugli
Дата 4.9.2005, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



-=Ustas=-, нет у меня GET стоит
Код

<form action='admin_admin.php' method='get' name='myform".$n."'>

Что делать, раньше я ваще без $_GET $_POST обходился и все работало, не знаю что произошло smile
PM MAIL   Вверх
-=Ustas=-
Дата 4.9.2005, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(maugli @ 3.9.2005, 21:33)
[code=php]
<? include "connect.php";
           $f=mysql_query("SELECT * FROM admins");
           while($d=mysql_fetch_array($f))
           {
             echo"
                       <form action='admin_admin.php' method='post' name='myform'>

Ну где же _GET, когда _POST !!!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
maugli
Дата 4.9.2005, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Вот он
Код

$f=mysql_query("SELECT * FROM admins"); $n=0;
while($d=mysql_fetch_array($f))
{ $n++;
echo"
<form action='admin_admin.php' method='get' name='myform".$n."'>

Я и сам просто в шоке почему они пустые, у меня паника уже начинается. Раньше все писао и было норм, а теперь ваще ничего не получается!!!

Это сообщение отредактировал(а) maugli - 4.9.2005, 16:30
PM MAIL   Вверх
maugli
Дата 4.9.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Так, наконец-то я понял суть проблемы. Мне необходимо сделать так, чтобы при нажатии на ссылку Редактировать, данные передавались так же как и при нажатии на кнопку Редактировать. Как это реализовать? С сылкой намного удобнее!!! К примеру через кнопку нельзя передать id таблички которую необходимо обновить!!!
Я придумал, как обойти эту проблему, это делать еще одну страничку, к которой будет посылать моя ссылка, и в которой уже будет строка, которую надо будет обновить, а там уже использовать кнопку, но согласитесь лучше все сделать сразу. Тем более я теперь не отвяжусь пока не узнаю как сделать чтоыб работал первоначальный вариант

PM MAIL   Вверх
PARROT
Дата 4.9.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Вот с кнопкой редактировать у меня вышло так: (без кнопки пока не выходит smile )
Код

 if($do=="del"){
             mysql_query("DELETE FROM admins WHERE id=".$idx)or die(mysql_error());
           }
      if(isset($_POST['send'])){
while(list($idx,$val) = each($ar))
{
        echo "UPDATE admins SET `name`='{$ar[$idx]}' WHERE id=$idx";
     mysql_query("UPDATE admins SET `name`='$ar[$idx]', `pas`='$pasw[$idx]', `email`='$mail[$idx]'  WHERE id=$idx")or die(mysql_error());
}
}
$f=mysql_query("SELECT * FROM admins")or die(mysql_error());
           while($d=mysql_fetch_row($f))
           {
echo"<table width='100%'  border='0' cellspacing='0' cellpadding='0'>
              <tr>
                <td>логин:<input type=text name=ar[".$d[0]."] value='$d[1]'></td>
                <td>пароль:<input type=text name=pasw[".$d[0]."] value='$d[2]'></td>
                <td>E-mail:<input type=text name=mail[".$d[0]."] value='$d[3]'></td>
                <td><a href=1.php?do=del&idx=$d[0]>Удалить</a></td>
              </tr>";
           }
        ?>
        <tr>
        <td colspan=4><input type=submit name=send value=Редактировать></td>
        </tr>
            </table>
          </form>

Тебе нужно редактировать много записей, не одну?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
maugli
Дата 4.9.2005, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



PARROT Слушай, а это все дело смог бы мне ты объяснить, а то нишинта не понятно. Обновлять мне надо много записей да!!!
PM MAIL   Вверх
Aliance
Дата 4.9.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



maugli
PARROT это не он, PARROT это она smile
PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 4.9.2005, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Открой свой старый код в Просмотр в html и мой код, и сравни. smile

Это сообщение отредактировал(а) PARROT - 4.9.2005, 20:33


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
-=Ustas=-
Дата 4.9.2005, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(maugli @ 4.9.2005, 18:12)
К примеру через кнопку нельзя передать id таблички которую необходимо обновить!!!

Да как это нельзя, ну елы-палы!!! smile Что, не судьба сделать скрытое поле с именем id!!!
Код

<input type=\"hidden\" name=\"id\" value=\"".$d['id']."\">



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
maugli
Дата 5.9.2005, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



-=Ustas=- И что мне с этим полем делать?
PM MAIL   Вверх
PARROT
Дата 5.9.2005, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(maugli @ 5.9.2005, 18:24)
  И что мне с этим полем делать?

можно прикрепить его к форме, создать дополнительное поле в базе и туда записывать данные пришедшие из формы.
Только в данном случае это не нужно. Достаточно номера записи который генерируется автоматом.
А вот если бы это были родительские отношения к сообщениям, тогда это выход.
Например:
номер сообщения 1|сообщение|0
номер сообщения 2|сообщение| родительское сообщение=1

Этим пользуются в основном для написания гостевых книг, форумов, для ответа на родительское сообщение.

Это сообщение отредактировал(а) PARROT - 5.9.2005, 17:52


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1136 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.