2012-10-22 3 views
0

У меня есть кнопка отправки на странице отправки, и она возвращается пустым и не обновляется, эхо также пустое.проблема с mysql UPDATE

<? 
    if (isset($_POST['submit'])) { 
     $newtext = mysql_real_escape_string($_POST['text']); 
     $doTextEdit = "UPDATE `$database_main`.`texts` SET `texts`.`text` = '$newtext' WHERE `texts`.`id` = '$sid' LIMIT 1" or die(mysql_error()); 

     $retval = mysql_query($doArtistEdit, $main); 
     if(! $retval) 
     { 
      die('Could not update data: ' . mysql_error()); 
     } 
     header("Location: ".$_SERVER['HTTP_REFERER']); 
     } 
    ?> 

Это в виде кода

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="$ID" method="post"> 
     Song Name : <input type="text" name="title" value="<?php echo $row_song['title']; ?>"> by Artist Name :<input type="text" name="artist" value="<?php echo $row_artist['artist']; ?>"><br><?php echo $sid; ?><?php echo $database_main; ?><?php echo $doTextEdit; ?> 
     Lyrics :<br><textarea name="text" cols="72" rows="20"><?php echo str_replace("\n","\n",$row_Recordset1['text']); ?></textarea><br> 
     <input type="submit" name="editlyrics" value="Edit"></form> 
+0

Где переменная '$ sid' получить набор? – eggyal

+0

Не используйте кнопку отправки, чтобы проверить, была ли отправлена ​​форма. Это связано с ошибкой IE, которая не отправляет кнопку, когда пользователь использует клавиатуру для отправки. Он отправляется только при нажатии кнопки с помощью мыши. –

+0

yeppers я нажимаю на него и в chrome – Caiapfas

ответ

3

Вы проверяете, если $_POST['submit'] установлен -

if (isset($_POST['submit'])) 

Но ваш отправить имя кнопки editlyrics, поэтому она должна быть -

if (isset($_POST['editlyrics'])) 

Добавить скрытый вход внутри формы -

<input type="hidden" name="song_id" value="<?php echo $sid; ?>"> 

И теперь ваш код будет примерно как-

<? 
if (isset($_POST['editlyrics'])) { 
    $song_id = mysql_real_escape_string($_POST['song_id']); 
    $newtext = mysql_real_escape_string($_POST['text']); 
    $doTextEdit = "UPDATE `$database_main`.`texts` SET `texts`.`text` = '$newtext' WHERE `texts`.`id` = '$song_id' LIMIT 1" or die(mysql_error()); 

    $retval = mysql_query($doTextEdit, $main); 
    if(! $retval) 
    { 
     die('Could not update data: ' . mysql_error()); 
    } 
    header("Location: ".$_SERVER['HTTP_REFERER']); 
    } 
?> 

Обратите внимание, что вы не должны писать код, используя устаревшие mysql_ функции, а также узнать как mysqli или PDO - php.net/manual/en/mysqlinfo.api.choosing.php

+0

UPDATE 'mydb'.'texts' SET' text'.'text' = 'i love cokz \ r \ nuck my sockzzz \ 'zzz \' zg gvgvgv 'WHERE 'texts'.'id' =' 'LIMIT 1 \t Текст: , который получил его, но идентификатор не передается. Извините за вопрос о знаке, но мне нужно передать имя формы i в ID feild

Caiapfas

+0

Вы можете передать идентификатор обратно в скрытое поле ввода, а затем вывести его из массива' $ _POST'. –

+0

вот так? первый раз, связанный со скрытой формой feilds, переходящей в var's $ id = $ _GET ['songid']; $ doTextEdit = "UPDATE' $ database_main'.texts' SET 'text'.'text' = '$ newtext' WHERE' text'.'id' = '$ id' LIMIT 1 "или die (mysql_error()); – Caiapfas

0

Вы настраиваете запрос SQL в $doTextEdit, но вы передаете $doArtistEdit функции mysql_query().

+0

изменил его, все еще не обновляя ... странно, я не вижу решения – Caiapfas

Смежные вопросы