Не могу разобраться с камандой UPDATE при вызове из PHP

nkvd2

Новичок
Не могу разобраться с камандой UPDATE при вызове из PHP

Ни как не могу понять как передать значения формы в функцию с командой UPDATE.
PHP:
function view_tbl()
{
  $sql = "SELECT * FROM table";
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);  
  $text = $row[text];

  echo $text.".<br>";

  echo "<form name='chge_form' method='post' action='this_file.php'>";
  echo "<textarea name='id_text'>".$text."</textarea><br>";
  echo "<input type=submit name='sub' value='Изменить'><br>";
  echo "</form>";
}

function chge_tbl()
{
  $sql = "UPDATE table SET text='$id_text'";
  mysql_query($sql);
}
Понимаю что туплю, я новичек в php и mySQL. Вопросы по команды UPDATE при поиске расматриваются серьезней чем мой, из чего делаю вывод что мой вопрос дилетанский совсем. Ну ни как не могу разобраться. Помогите или дайте указания на руководство с примерами. В сети везде пример с обновлением записи гостевой который не работатет у меня и не разобран до конца.
Заранее спасибо.
 

nkvd2

Новичок
не получается так.
может я "action" у формы не правильно передаю?
функцию view_tbl() я вызываю сразу после ее объявления. В результате отправки формы получаю изначальное значение, из чего делаю вывод что не обновилась запись. при прямом вызове функции chge_tbl() запись обновляется, то есть в принципе она работает.
 

ustas

Элекомист №1
книжку почитай что ли, 6 ошибок в 5 строчках,.
function chge_tbl($id_text)
{

$sql = 'UPDATE table SET text=' . хerescape('$id_text') . '; ';
mysql_query($sql);
}

function xerescape($value){
return '\'' . mysql_escape_string($value) . '\'' ;
}

у тебя и название таблиицы странное > table


ты главно не утекай, сяс гуры подтянутся. они лучше тебе помогут :)

и еще кода хотим посмотреть, тебя и там ошибки;)
 

nkvd2

Новичок
название таблицы table для примера, так она wnsr_contacts называется. table для лучшей читабельности написал.
Я в общем то весь код привел почти. Так как не получается самое главное в нем, вроде проще некуда, а не получается.

ustas поясните, пожалуйста, что вы написали. я новичек и не понял.

Вот полностью код:
PHP:
<?
mysql_connect("localhost", "qwerty", "123456");
mysql_select_db("wbase");
$sql="SELECT * FROM wnsr_contacts";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

function view_tbl() 
{ 
  global $row;
  $infotext= $row[infotext]; 

  echo $text.".<br>"; 

  echo "<form name='chge_form' method='post' action='db2.php'>"; 
  echo "<textarea name='id_infotext'>".$infotext."</textarea><br>"; 
  echo "<input type=submit name='sub' value='Изменить'><br>"; 
  echo "</form>"; 
} 
view_tbl();
	
	
function chge_tbl($id_infotext) 
{ 
  $sql = "UPDATE wnsr_contacts SET infotext='$id_infotext'"; 
  mysql_query($sql); 
}

?>
Руководство я бы с удовольствием почитал с примерами, т.к. то что есть не помогает разобраться.
 

ustas

Элекомист №1
ну я тоже вишь новичок, столько много еще не выучил, вот хожу читать http://phpclub.ru/faq/wakka.php?wakka=Map , кстати ты свою CMS писать еще не пробывал? если пробывал, раскажи как она, быстро работает?
 

nkvd2

Новичок
Очень остроумно. Документацию я читать умею. У меня запинка, не могу понять в чем и документация мне не помогает. Я так понимаю что люди и делятся опытом для этого, а не отправляют к перелопачиванию гор документации.
Вот конкретная ссылка по проблеме была бы кстати...
могу привести конкретный пример который везде в сети лежит, он у меня не работает. переделать его я не могу потому что незнаю почему он не работает.

-~{}~ 02.06.07 12:29:

Переделайте мой код в рабочий и я наверное разберусь тогда во всем
 

nkvd2

Новичок
Автор оригинала: ustas
приведи конкретный пример который везде в сети лежит. что там не работает.
PHP:
<?
mysql_connect("localhost", "root", "");
mysql_select_db("test");
if(@$submit_update) 
{
  $sql="update db_guest set name='$name', mail='$mail', url='$url', content='$content' 
         where (id='$update')";
  mysql_query($sql);
}

$sql="select * from db_guest";
$result=mysql_query($sql);
$rows=mysql_num_rows($result);

for($i=0;$i<$rows;$i++) 
{
  mysql_data_seek($result,$i);
  $arr_guest=mysql_fetch_array($result);
  echo "<form method=get action='guest_update.php'>";
  echo "<input type=hidden name='update' value='".$arr_guest["id"]."'>";
  echo "<input type=text name='name' value='".$arr_guest["name"]."'>";
  echo "<input type=text name='mail' value='".$arr_guest["mail"]."'>";
  echo "<input type=text name='url' value='".$arr_guest["url"]."'>";
  echo "<textarea name='content'>".$arr_guest["content"]."</textarea>";
  echo "<input type=submit name='submit_update' value='Изменить'>";
  echo "</form>";
}

echo "</form>";
?>
Из кода удалена таблица для читабельности.
Вот непонимаю зачем echo "</form>"; повторять два раза. У меня это не работает.
mySQL5 php5 xampp

-~{}~ 02.06.07 12:45:

за ссылки спасибо
 

ustas

Элекомист №1
а где ж такой скрипт лежит (в смысле места размножения)
http://phpclub.ru/faq/wakka.php?wakka=DebugScripts&v=cfx

Вот непонимаю зачем echo "</form>";
дак ты убери
 

fixxxer

К.О.
Партнер клуба
один дурак написал, другие накопировали.
надо читать мануал и хорошие книги, а не говно всякое :)
 

ustas

Элекомист №1
$id_text =$_POST['id_text'];
function chge_tbl($id_text)
{

$sql = 'UPDATE table SET text=' . xerescape($id_text) . '; ';
mysql_query($sql);
}
// что бы твоя база раньше времени не умерла
function xerescape($value){
return '\'' . mysql_escape_string($value) . '\'' ;
}
бери и спасибо, до сих пор болит живот.
особенно после перлов http://www.yandex.ru/yandsearch?text=nkvd2+ и на гугле

больше не пиши. не помогут
 

nkvd2

Новичок
ustas за пример спасибо, буду разбираться.
А по поводу показать меня смешным во первых не в тему топика, а во вторых характеризует вас, а не меня. Вы по всей видимости родились со всеми необходимыми знаниями, причем до появления соответствующих технологий.

-~{}~ 02.06.07 14:44:

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

Krishna

Продался Java
nkvd2
Необходимые знания ищут не на форумах, где непонятно кто отвечает (это в основном те, кому делать нечего ;) ).
А в _книгах_ и официальной (!) документации.
 
Сверху