Помогите понять почему при обновление данные не изменяются а удаляются : PHP: <?php mysql_select_db($db) ; $num = rand(10000,30); // $r = mysql_query("select*from PAY;") ; for($i=0; $i < mysql_num_rows($r);$i++) { $p = mysql_fetch_array($r); echo" <br><a href=index.php?up=$p[ID]>Редактировать</a> <font color=red>$p[INFO]</font>"; } if( isset($_GET['pole2'])) { $n1 = $_GET['pole2'] ; $mp = "INSERT INTO PAY VALUES ('$num','$n1','www');" ; mysql_query($mp); } // проблема if( isset($_GET['up']) ) { static $post; $post = $_GET['up'] ; $br2 = mysql_query("SELECT * FROM PAY WHERE ID = '".$_GET['up']."';"); $ps = mysql_fetch_array($br2) ; echo "<form name=post2 action=index.php method=GET>"; echo " <br /> "; echo "<textarea name=pole> $ps[INFO] </textarea><br /> <br /> "; echo " <input type=submit value=Send name=but/>"; //echo" <input type=hidden name=ss > "; echo " </form> "; if(isset ($_GET['but'])) $n = $_GET['pole']; mysql_query("UPDATE PAY SET INFO='$n' WHERE ID='$post' ;" ) ; // обновление } ?>
Это что за чудик? Название элемента в кавычки + соблюдаем регистр. В теле запроса в бд не нужно ставить точку с запятой в конце
Потому что это каша, а не код. Мухи - отдельно, котлеты - отдельно. СНАЧАЛА мы должны поймать всё, что нам передали и соответственно разобрать/обновить, а ПОТОМ выводить что-либо на экран. А у тебя всё в кучу. В итоге у тебя - строка 49 работает не тогда, когда нажали submit в форме, которую ты рисуешь с 38 по 44 строку, а когда у тебя нажали ссылку "редактировать". Потому что ты неправильно расставил скобки {}. Естественно, у тебя в этот момент переменная $n равна "" (пустоте) - вот у тебя всё и удаляется. А когда нажимают кнопку "submit" - у тебя переменная $_GET['up'] равна пустоте - потому что из формы она не передаётся. Поэтому у тебя ни на экране ничего не показывается и данные не обновляются, так как строка 49 не выполняется. Перепиши код, как я сказал - сначала все проверки и обновления данных в базе, а только потом вывод на экран форм и т.д.
Чаще всего, в _GET данные передаются через ссылку. Т.е site.ru/?up=hello -> $_GET[up] = hello -------------------------------------------------- Если через форму HTML: <form name='myform' method='get' ...