За последние 24 часа нас посетили 34978 программистов и 1756 роботов. Сейчас ищут 826 программистов ...

Проблема с данными при обновление

Тема в разделе "PHP для новичков", создана пользователем ergocom, 13 мар 2008.

  1. ergocom

    ergocom Активный пользователь

    С нами с:
    24 янв 2008
    Сообщения:
    12
    Симпатии:
    0
    Помогите понять почему при обновление данные не изменяются а удаляются :

    PHP:
    1.  
    2.  
    3. <?php
    4.  
    5.  
    6.      $num = rand(10000,30);
    7.  
    8.                 //
    9.       $r =   mysql_query("select*from PAY;") ;
    10.         for($i=0; $i < mysql_num_rows($r);$i++)  {
    11.         $p = mysql_fetch_array($r);
    12.         echo" <br><a href=index.php?up=$p[ID]>Редактировать</a>&nbsp;&nbsp;<font color=red>$p[INFO]</font>";
    13.  
    14.  }
    15.  
    16.  
    17.  
    18.   if( isset($_GET['pole2']))
    19.   {
    20.  
    21.   $n1 = $_GET['pole2'] ;
    22.                $mp =  "INSERT INTO PAY VALUES ('$num','$n1','www');" ;
    23.         mysql_query($mp);
    24.        }
    25.  
    26.  
    27.  
    28.  
    29. // проблема
    30.            if( isset($_GET['up']) )
    31.            {
    32.               static $post;
    33.           $post  = $_GET['up']  ;
    34.                $br2 = mysql_query("SELECT * FROM PAY WHERE ID  = '".$_GET['up']."';");
    35.  
    36.                $ps = mysql_fetch_array($br2) ;
    37.  
    38.  
    39.                echo  "<form name=post2 action=index.php method=GET>";
    40.                echo " <br /> ";
    41.  
    42.                echo "<textarea name=pole> $ps[INFO] </textarea><br /> <br /> ";
    43.                echo " <input type=submit  value=Send  name=but/>";
    44.                //echo" <input type=hidden name=ss >   ";
    45.                echo "    </form>  ";
    46.  
    47.    if(isset ($_GET['but']))
    48.       $n = $_GET['pole'];
    49.  
    50.          mysql_query("UPDATE PAY SET INFO='$n' WHERE ID='$post'  ;"   ) ;  // обновление
    51.  
    52.  
    53.            }
    54.  
    55.  
    56.  
    57.  
    58.  
    59.  
    60. ?>
    61.  
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Это что за чудик? Название элемента в кавычки + соблюдаем регистр.

    В теле запроса в бд не нужно ставить точку с запятой в конце
     
  3. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Не нужно, но это и не ошибка.
     
  4. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Потому что это каша, а не код.
    Мухи - отдельно, котлеты - отдельно. СНАЧАЛА мы должны поймать всё, что нам передали и соответственно разобрать/обновить, а ПОТОМ выводить что-либо на экран. А у тебя всё в кучу.
    В итоге у тебя - строка 49 работает не тогда, когда нажали submit в форме, которую ты рисуешь с 38 по 44 строку, а когда у тебя нажали ссылку "редактировать". Потому что ты неправильно расставил скобки {}. Естественно, у тебя в этот момент переменная $n равна "" (пустоте) - вот у тебя всё и удаляется. А когда нажимают кнопку "submit" - у тебя переменная $_GET['up'] равна пустоте - потому что из формы она не передаётся. Поэтому у тебя ни на экране ничего не показывается и данные не обновляются, так как строка 49 не выполняется.
    Перепиши код, как я сказал - сначала все проверки и обновления данных в базе, а только потом вывод на экран форм и т.д.
     
  5. ergocom

    ergocom Активный пользователь

    С нами с:
    24 янв 2008
    Сообщения:
    12
    Симпатии:
    0
    Как передать из формы $_GET['up'] ?
     
  6. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Чаще всего, в _GET данные передаются через ссылку.
    Т.е
    site.ru/?up=hello -> $_GET[up] = hello
    --------------------------------------------------
    Если через форму
    HTML:
    1.  
    2. <form name='myform' method='get' ...
    3.  
     
  7. ergocom

    ergocom Активный пользователь

    С нами с:
    24 янв 2008
    Сообщения:
    12
    Симпатии:
    0
    все работает все поменял . топик клосе