Запутался что к чему. Первый скрипт выводит 2 поля textarea из быазы данных. Текст соот-о одинаковый и там и там. Хочу во втором поле ввести другой текст и передать это все в базу. Т.е. сделать UPDATE текстового поля 1. PHP: <?php // Устанавливаем соединение с базой данных include "conn.php"; $page = $_GET[band]; $sql = "SELECT * FROM groups WHERE NAME = '$page'"; $data = mysql_query($sql); $row = mysql_fetch_row($data); ?> <form action=doedit.php?band=$row[1] method=GET> <table border=3> <tr> <td><textarea class=input cols=42 rows=5 name=DEMO><? echo $row[1]; ?>></textarea></td> <td><textarea class=input cols=42 rows=5 name=NAME><? echo $row[1]; ?>></textarea></td> </tr> </table> <input class=button type=submit value="CHANGE"> </form> Обработчик PHP: <?php include "conn.php"; $page = $_GET[band]; $query = "UPDATE groups SET NAME = '$page'"; $data = mysql_query($sql); $row = mysql_fetch_row($data); echo $row[1]; ?>
WHERE забыл. так он тебе весь столбец обновит этим значением это раз два, кто такой get[band]? во-первых не [band], a ['band'] видимо во-вторых такого параметра не передается ибо в форме такого элемента нет. Есть демо и нейм.
PHP: Переделал, но пока изменений не видно. <?php // Устанавливаем соединение с базой данных include "conn.php"; // Извлекаем из URL текущую страницу $page = $_GET[band]; // здесь по band передаются корректно парметры с предыдущей страницы. $sql = "SELECT * FROM groups WHERE NAME = '$page'"; $data = mysql_query($sql); $row = mysql_fetch_row($data); ?> <form action=doedit.php method=GET> <table border=3> <tr> <td><textarea class=input cols=42 rows=5 name=answer><? echo $row[1]; ?>></textarea></td> // выводит ABBA <td><textarea class=input cols=42 rows=5 name=NAME><? echo $row[1]; ?>></textarea></td> // выводит ABBA (корректирую на BEATLES) </tr> </table> <input class=button type=submit value="CHANGE"> </form> Обработчик PHP: <?php include "conn.php"; $page = $_GET['NAME']; //извлекаю свои BEATLES $query = "UPDATE groups SET WHERE NAME = '$page'"; // думаю мускул не понимает какую ячейку надо заменить занчением Beatles !!! $data = mysql_query($query); $row = mysql_fetch_row($data); echo $row[1]; //хочу вывести свои beatles ?>
апдейт групс сет нейм = битлс WHERE ????????=??????? иначе он апдейтит все подряд. и еще. параметры хтмл тегов должны заключаться в кавычки. иначе могут быть косяки.
хера себе, что там наверху за хня с [⁄b] поризошла??? Я лично только выделил фрагмент жирным в цитате, или этого нельзя делать ? Ж)) - что это??
Вот чуть подробнее. Это скрипт передает 2 значения OLDNAME --старое имя NAME---новое имя (которое я хочу вписать) PHP: <form action=doedit.php method=GET> <table border=3> <tr> <td><textarea class=input cols=42 rows=5 name=OLDNAME><? echo $row[1]; ?></textarea></td> Выводит ABBA <td><textarea class=input cols=42 rows=5 name=NAME><? echo $row[1]; ?></textarea></td> // Выводит ABBA </tr> </table> Вот тчо уходит в строку запроса doedit.php?OLDNAME=ABBA&NAME=BEATLES PHP: <?php include "conn.php"; $page = $_GET['NAME']; // Получаю новое имя BEATLES $pageold = $_GET['OLDNAME']; //Получаю старое имя ABBA $query = "UPDATE groups SET NAME WHERE NAME = '$pageold'"; // Делаю абдейст столбца NAME где ячейка соответсует имени OLDNAME $data = mysql_query($query); $row = mysql_fetch_row($data); echo $row[1]; ?> На экране вижу пустой экран.. Может в пшп админ можно проверить каким-нибудь sql запросом ??)) Помогите !!!!
PHP: $query = "UPDATE groups SET NAME ='$page' WHERE NAME = '$pageold'"; Или как-то так нужно написать запрос..??
Извиняйте вы меня зайцы мои добрые )) оказывается вот эта хрень PHP: $query = "UPDATE groups SET NAME ='$page' WHERE NAME = '$pageold'"; работает Я обновил первую страницу и увидел изменения !! Ура. Но мне бы хотелось видеть все таки не пустой экран , а изменения в обработчике PHP: $data = mysql_query($query); $row = mysql_fetch_row($data); echo $row[1]; ?> вот здесь касяк..он ничего не выводит...хотя в базе меняет ABBA на BETALES!!
ясен пень пустой экран, $row = mysql_fetch_row($data); - это чё такое? а вернее зачем тут? УЧИ! и что ты хочешь на экран вывести? Ввпринципе у тебя все данные есть. хош NAME? так и пиши echo $page; хош старую пиши echo $pageold; хош полностью строку - тогда сперва зделай SELECT потом mysql_fetch_row, а потом echo $row[1]; псы: я не заяц, SQL не хрень.... и почитай доки, всё получится без лишних вопросов.
Что хочу ?? На словах это звучит так: После UPDATE хочу снова обратиться к базе и выделить эту же ячейку которую я обновлял и получить из нее уже то значение которое пришло. Т.е. смысл банально проверить а пришло ли значение в нужную ячейку )). Обновилось ли оно. Вот колхозный пример который возвращает не одну ячейку , а весь столбик. В нем я уже вижу то самое новое значение. Хотелось бы , чтобы приходило именно 1 значение, а не столбик из 30 имен..)) По видимому надо иметь еще ID строки или значение другого стоблика привязанного к этой строке. Т.е. в этот скрипт должна приходить еще одна не меняемая переменная типа $id = $_GET['ID']; которую можно будет использовать в запросе применяя where. Я прав ?? Ну а пока колхозный вариант выбивает весь столбик с кучей строк. PHP: <?php include "conn.php"; $page = $_GET['NAME']; $pageold = $_GET['OLDNAME']; $query = "UPDATE groups SET NAME ='$page' WHERE NAME = '$pageold'"; $data = mysql_query($query); $sql = "SELECT * FROM groups"; $data = mysql_query($sql); while($row=mysql_fetch_array($data)) echo "$row[NAME]<br>"; ?>
Я уже близок к победе. в этом скрипте я получаю еще ID строки. Она приходит прооверено. И хочу использовать ID в запросе. Не уверен что запрос корректен, и что цикл нужен ...наверно доасточно $row=mysql_fetch_array($data) PHP: <?php include "conn.php"; $page = $_GET['NAME']; $pageold = $_GET['OLDNAME']; $id = $_GET['ID']; $query = "UPDATE groups SET NAME ='$page' WHERE NAME = '$pageold'"; $data = mysql_query($query); $sql = "SELECT FROM groups WHERE ID = '$id'"; $data = mysql_query($sql); while($row=mysql_fetch_array($data)) echo "$row[NAME]<br>"; ?>
Ура я сделал !! Не хватало звездочки в запросе MySQL PHP: <?php include "conn.php"; $page = $_GET['NAME']; $pageold = $_GET['OLDNAME']; $id = $_GET['ID']; $query = "UPDATE groups SET NAME ='$page' WHERE NAME = '$pageold'"; $data = mysql_query($query); $sql = "SELECT * FROM groups WHERE ID = '$id'"; $data = mysql_query($sql); while($row=mysql_fetch_array($data)) echo "$row[NAME]<br>"; ?>
Слушай ты обновляешь строку чем? вот это значение тебе и нужно вывесте, не надо делать лишнего SELECT, просто: PHP: <? $query = "UPDATE `groups` SET `NAME` ='$page' WHERE `NAME` = '$pageold'"; if(mysql_query($query)) { return $page; } else { return 'Ошибка обновления БД.'; } ?>
PHP: <?php include "conn.php"; $page = $_GET['NAME']; $pageold = $_GET['OLDNAME']; $id = $_GET['ID']; $query = "UPDATE groups SET NAME ='$page' WHERE NAME = '$pageold'"; if(mysql_query($query)) { return $page; } else { return 'Ошибка обновления БД.'; } ?> Смысл твоей конструкции мне понятен, но она выводит пустой экран..(( ни ошибки ни значения... Пробовал оставлять $data = mysql_query($sql); перед проверкой...все рано результат тот же ..пустой экран Чем плох мой метод ?? Он сильно нагружает скрипт или нет ??...теряется бытродействие ??
БЛЯЁ! НАПИШИ ВМЕСТО RETURN $PAGE; - DIE($PAGE); или ECHO или PRINT.... вобще уже Ну а сам то как думаешь?
СПАСЫЫЫЫБО УЧЫЫЫЫТЕЛЬ )) Написал echo. Заработало )) как говорил мой препод по металоведенью " Не надо думать" --Надо знать.) Я не знаю. Вижу только что скорость выполнения визуально не отличается. а как замерить пока не знаю