|
|
|
| Здравствуйте,
не получается обновить таблицу вот код:
if(isset($_POST['edit'])){
$id_post = $_POST['id_form'];
if(!isset($_POST['editing'])){
$q_edit = mysql_query("SELECT * FROM tbl_posts WHERE id_p='".$id_post."'");
if(mysql_num_rows($q_edit)==1){
$r_edit = mysql_fetch_array($q_edit);
echo'<h4>Editing</h4>';
echo'<form action="" method="POST">';
echo'<input type="text" name="name_author" value="'.$r_edit['name_author'].'"><br />';
echo'<textarea cols="20" rows="5" wrap="on" name="message">'.$r_edit['message'].'</textarea>';
echo'<input type="submit" name="editing" value="Изменить">';
echo'</form>';
}
}else{
$id_post = $_POST['id_form'];
$edit = isset($_POST['name_author'])?mysql_escape_string($_POST['name_author']):NULL;
$text = isset($_POST['message'])?mysql_escape_string($_POST['message']):NULL;
$q_edit1 = mysql_query("UPDATE tbl_posts SET name_author='".$edit."',message='".$text."' WHERE id_p='".$id_post."' AND theme_id='".$id_t."'")or die("не получилось");
header('refresh: 0; url='.$SERVER['PHP-SELF'].'');
}
}
|
хочу чтобы данные заменялись теми которые в форме, но когда я нажимаю изменить то ничего не происходит...посоветуйте пожалуйсто, что не так. Спасибо | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 12:01)
| | я бы взял, вывел текст запроса на экран и посмотрел бы составлен ли он пракильно. если всё вроде правильно - запустил бы на всякий случай в phpmyadmin.
еще можно http://www.softtime.ru/dic/id_dic=94&id_group=2 | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 12:01)
| | сюда
echo'<form action="" method="POST">';
echo'<input type="text" name="name_author" value="'.$r_edit['name_author'].'"><br />';
echo'<textarea cols="20" rows="5" wrap="on" name="message">'.$r_edit['message'].'</textarea>';
echo'<input type="submit" name="editing" value="Изменить">';
echo'</form>';
|
добавьте инпут
echo'<form action="" method="POST">';
echo'<input type="text" name="id_form" value="'.$id_form.'"><br />';
echo'<input type="text" name="name_author" value="'.$r_edit['name_author'].'"><br />';
echo'<textarea cols="20" rows="5" wrap="on" name="message">'.$r_edit['message'].'</textarea>';
echo'<input type="submit" name="editing" value="Изменить">';
echo'</form>';
|
| |
|
|
|
|
|
|
|
для: ride
(17.07.2009 в 12:20)
| | Извиняюсь это я не дописал, у меня есть эта строчка только чуть раньше:
<form action="" method="POST">
<input type="hidden" name="id_form" value="'.$r_p['id_p'].'">
<input type="submit" name="delete" value="delete">
<input type="submit" name="edit" value="edit">
</form>
|
Спасибо всем за ответы щас буду разбираться, посмотрб структуру и попытаюсь вывести ошибки! | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 13:11)
| | это другое.
там, где я указал добавить у вас нету этой строчки.
просто добавьте и проверьте | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 12:01)
| | Что-то в условии у тебя не правильно!
попробуй так:
if(!isset($_POST['edit']))
{
}
просто у тебя условие:
if(isset($_POST['edit']))
{ ....}
else{
$id_post = $_POST['id_form'];
Получается если не установлено значение пост, то прочитать из пост.....
+ header('refresh: 0; url='.$SERVER['PHP-SELF'].''); для меня вобще не понятен... | |
|
|
|
|
|
|
|
для: adpakm
(17.07.2009 в 12:22)
| | Я этим пытаюсь показать,что:
если нажата кнопка edit(она у меня еще раньше), то вывести форму
if(!isset($_POST['editing'])){
echo'<h4>Editing</h4>';
echo'<form action="" method="POST">';
echo'<input type="text" name="name_author" value="'.$r_edit['name_author'].'"><br />';
echo'<textarea cols="20" rows="5" wrap="on" name="message">'.$r_edit['message'].'</textarea>';
echo'<input type="submit" name="editing" value="Изменить">';
echo'</form>';
}
}else{
$id_post = $_POST['id_form'];
$edit = isset($_POST['name_author'])?mysql_escape_string($_POST['name_author']):NULL;
$q_edit1 = mysql_query("UPDATE tbl_posts SET name_author='".$edit."',message='".$_POST['message']."' WHERE id_p='".$id_post."' AND theme_id='".$id_t."'")or die("hovno hovno");
header('refresh: 0; url='.$SERVER['PHP-SELF'].'');
}
}
|
строчка if(!isset($_POST['editing'])){ у меня значит если не нажата кнопка Изменить то вывести форму если нажата то изменить данные.
а header('refresh: 0; url='.$SERVER['PHP-SELF'].''); я просто делаю переадресацию на этуже страницу, чтобы она обновилась с новыми данными. | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 14:11)
| | попробовал вставить вот эту строчку
<input type="text" name="id_form" value="'.$id_form.'">
|
но ничего не получилось(
Я вот щас смотрю у меня такое ощущение что else вот здесь:
}else{
$id_post = $_POST['id_form'];
$edit = isset($_POST['name_author'])?mysql_escape_string($_POST['name_author']):NULL;
$q_edit1 = mysql_query("UPDATE tbl_posts SET name_author='".$edit."',message='".$_POST['message']."' WHERE id_p='".$id_post."' AND theme_id='".$id_t."'")or die("hovno hovno");
header('refresh: 0; url='.$SERVER['PHP-SELF'].'');
}
|
вообще не выполняется, потомучто я попытался туда вписать просто echo и опять ничего.. | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 14:27)
| | По Вашей логике если у Вас нажата кнопка 'editing', то откуда должен взяться $_POST['edit'], который у Вас "где-то" раньше? И соответственно это условие Вы не проходите.
А вообще тяжело по кусочкам скрипта определить. | |
|
|
|
|
|
|
|
для: root
(17.07.2009 в 14:39)
| | щас весь покажу, у меня две кнопки сначало edit а потом editing:
$id_t = $_GET['id_theme'];
$q_post = mysql_query("SELECT * FROM tbl_themes WHERE id = '".$id_t."' ORDER BY id DESC");
if(mysql_num_rows($q_post)==1){
while($r_post = mysql_fetch_array($q_post)){
echo '
<table>
<tr>
<td width="100" height="200">'.htmlspecialchars($r_post['name_author']).'</td>
<td width="200" height="200">'.htmlspecialchars($r_post['name']).'</td>
<td width="500" height="200">'.htmlspecialchars($r_post['message']).'
<form action="" method="POST">
<input type="submit" name="delete" value="delete">
</form>
</td>
</tr>
</table>
';
}
}else{echo 'nic neni';}
$q_p = mysql_query("SELECT * FROM tbl_posts WHERE theme_id = '".$id_t."' ORDER BY id_p ASC");
while($r_p = mysql_fetch_array($q_p)){
echo '<table>';
echo ' <tr>';
echo ' <td width="100" height="200">'.htmlspecialchars($r_p['name_author']).'</td>';
echo ' <td width="200" height="200">'.htmlspecialchars($r_p['name']).'</td>';
echo ' <td width="500" height="200">'.htmlspecialchars($r_p['message']).'
<form action="" method="POST">
<input type="hidden" name="id_form" value="'.$r_p['id_p'].'">
<input type="submit" name="delete" value="delete">
<input type="submit" name="edit" value="edit">
</form>
</td>';
echo ' </tr>';
echo '</table>';
}
if(isset($_POST['delete'])){
$id_post = $_POST['id_form'];
$q_del = mysql_query("DELETE FROM tbl_posts WHERE id_p='".$id_post."'");
header('refresh: 0; url='.$SERVER['PHP-SELF'].'');
}
if(isset($_POST['edit'])){
$id_post = $_POST['id_form'];
if(!isset($_POST['editing'])){
$q_edit = mysql_query("SELECT * FROM tbl_posts WHERE id_p='".$id_post."'");
if(mysql_num_rows($q_edit)==1){
$r_edit = mysql_fetch_array($q_edit);
echo'<h4>Editing</h4>';
echo'<form action="" method="POST">';
echo'<input type="text" name="name_author" value="'.$r_edit['name_author'].'"><br />';
echo'<textarea cols="20" rows="5" wrap="on" name="message">'.$r_edit['message'].'</textarea>';
echo'<input type="submit" name="editing" value="Изменить">';
echo'</form>';
}
}else{
$id_post = $_POST['id_form'];
$edit = isset($_POST['name_author'])?mysql_escape_string($_POST['name_author']):NULL;
$q_edit1 = mysql_query("UPDATE tbl_posts SET name_author='".$edit."',message='".$_POST['message']."' WHERE id_p='".$id_post."' AND theme_id='".$id_t."'")or die("hovno hovno");
header('refresh: 0; url='.$SERVER['PHP-SELF'].'');
}
}
?>
|
| |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 14:44)
| | Лучше создайте отдельную страницу для edit'a.
Если нет, то:
if(isset($_POST['edit']) || isset($_POST['editing']))
и заметьте, что Ваша форма 'Editing' не отправляет id_post. | |
|
|
|
|
|
|
|
для: root
(17.07.2009 в 15:11)
| | Все работает спасибо большое)
написал как и сказали:
if(isset($_POST['edit']) || isset($_POST['editing']))
|
| |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 15:36)
| | также я написал "Лучше создайте отдельную страницу для edit'a."
И поверьте, так будет лучше :-) | |
|
|
|
|
|
|
|
для: root
(17.07.2009 в 15:37)
| | спасибо за совет обязательно напишу) тоже думал но решил пока в этой оставить) | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 15:41)
| | для формы где edit или где editing? создать страницу? Я думал создать в action где у меня кнопка editing страницу новую. | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 15:43)
| | Да, для 'editing' новую страницу. На эту страницу передавайте параметр id.
форма edit не нужна вообще. | |
|
|
|
|
|
|
|
для: Root
(17.07.2009 в 15:52)
| | тоесть можно сделать вместо формы edit просто ссылки да? но я в этой форме передаю данные о id поста к которому я обращаюсь(удалить или изменить):
$q_p = mysql_query("SELECT * FROM tbl_posts WHERE theme_id = '".$id_t."' ORDER BY id_p ASC");
while($r_p = mysql_fetch_array($q_p)){
echo '<table>';
echo ' <tr>';
echo ' <td width="100" height="200">'.htmlspecialchars($r_p['name_author']).'</td>';
echo ' <td width="200" height="200">'.htmlspecialchars($r_p['name']).'</td>';
echo ' <td width="500" height="200">'.htmlspecialchars($r_p['message']).'
<form action="" method="POST">
<input type="hidden" name="id_form" value="'.$r_p['id_p'].'">
<input type="submit" name="delete" value="delete">
<input type="submit" name="edit" value="edit">
</form>
|
| |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 16:02)
| | да, просто ссылки, и в ссылках передавайте параметры. | |
|
|
|
|
|
|
|
для: root
(17.07.2009 в 16:07)
| | блин действительно, спасибо большое туплю)) | |
|
|
|
|
|
|
|
для: burobd1
(17.07.2009 в 14:44)
| | вместо header('refresh: 0; url='.$SERVER['PHP-SELF'].''); напишите echo 'id_form='.$id_frorm;
и скажите результат | |
|
|
|