Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Форма добавления новости

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Reniksa
Отправлено: 08 Ноября, 2010 - 10:56:30
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




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

Форма добавления новости:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Добавить новость</title>
  4. <link rel="stylesheet" type="text/css" href="style.css">
  5. </head>
  6. <body>
  7. <form action="form.php" method="post">
  8. <table>
  9. <tr>
  10. <td>Рубрика</td>
  11. <td><input type=text name="rub" size="20"></td>
  12. </tr>
  13. <tr>
  14. <td>Заголовок</td>
  15. <td><textarea name="zag" cols="40" rows="2"></textarea></td>
  16. </tr>
  17. <tr>
  18. <td>Подзаголовок</td>
  19. <td><textarea name="rzag" cols="40" rows="2"></textarea></td>
  20. </tr>
  21. <tr>
  22. <td>Текст статьи</td>
  23. <td><textarea name="text" cols="70" rows="20"></textarea></td>
  24. </tr>
  25. <tr>
  26. <td><input type="submit" value="Отправить"></td>
  27. </tr>
  28. </table>
  29. </form>
  30.  
  31. </body>
  32. </html>


Обработчик формы:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Просмотр новости</title>
  4. <link rel="stylesheet" type="text/css" href="style.css">
  5. </head>
  6. <body>
  7.  
  8. <?php
  9. $link = mysql_connect("localhost", "root", "123456") or die ("Не могу подключиться");
  10. mysql_select_db("test", $link) or die ("не могу выбрать БД");
  11.  
  12.  
  13. $rub = $_POST['rub'];
  14. $zag = $_POST['zag'];
  15. $rzag = $_POST['rzag'];
  16. $text = $_POST['text'];
  17.  
  18. $error = array();
  19.  
  20. if($_POST['rub'] !== '')
  21. {
  22.     echo '<div class = "rub">'.$rub.'</div>';
  23. }
  24. else{$error[] = "Вы не ввели рубрику<br/>";}
  25.  
  26.  if($_POST['zag'] !== '')
  27. {
  28.     echo '<div class = "zag">'.$zag.'</div>';
  29. }
  30. else{$error[] = "Вы не ввели заголовок<br/>";}
  31.  
  32.   if($_POST['rzag'] !== '')
  33. {
  34.     echo '<div class = "rzag">'.$rzag.'</div>';
  35. }
  36. else{$error[] = "Вы не ввели подзаголовок";}
  37.  
  38.    if($_POST['text'] !== '')
  39. {
  40.     echo '<div class = "text">'.$text.'</div>';
  41. }
  42. else{$error[] = "Вы не ввели текст статьи";}
  43.  
  44. if(!empty($error))
  45. {
  46.     foreach($error as $err)
  47.     {
  48.        echo '<span class = "error">'.$err.'</span><br/>';
  49.     }
  50. }
  51. else{
  52.    
  53. echo '<form method="post">';
  54. echo '<table>
  55.       <tr>
  56.       <td><input type = "submit" name = "save" value = "Сохранить">
  57.       <td><input type = "submit" name = "edit" value = "Редактировать">
  58.        <td><input type = "submit" name = "cancel" value = "Отменить">
  59.        </tr>
  60.        </table>';
  61.  
  62. }
  63.  
  64. ?>
  65.  
  66. </body>
  67. </html>


Далее я хочу чтобы при нажатии кнопки "Редактировать" снова открывалась форма с уже введеными ранее значениями. Прошу совета как мне это реализовать. Заранее спасибо.
 
 Top
pitbul
Отправлено: 08 Ноября, 2010 - 11:39:38
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




1) прописываете action="edit.php" в форме. Если method="post", то нужно добавить поле hidden в котором укажете индификатор новости, если method="get", то достаточно action="edit.php?id=ИДвашейНовости". Но а если вы решили выбрать method="get", то можете также это сделать обычной ссылкой <a href="edit.php?id=ИДвашейНовости"> Редактировать</a>
2)в файле edit.php делаете выборку типа $sql="SELECT * FROM news WHERE id={$_REQUEST['id']} LIMIT 1", после чего данные запихиваете в HTML форму в атрибуты value ну или куда нужно.
 
 Top
Reniksa
Отправлено: 08 Ноября, 2010 - 11:50:07
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




А как мне узнать id новости, ведь он будет генерироваться автоматически?
Для добавления данных в базу данных я хочу использовать строчку
CODE (htmlphp):
скопировать код в буфер обмена
  1.  $q = @mysql_query("INSERT INTO news values(null, '".$rub."', '".$zag."', '".$rzag."', '".$text."' )");
  2.  

В какое место мне ее кстати стоит добавить?
 
 Top
pitbul
Отправлено: 08 Ноября, 2010 - 13:39:32
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




1)чтобы узнать id вам поможет mysql_insert_id() http://php.su/functions/?mysql-insert-id
2)а добавлять нужно в том месте.где приходят ваши введенные параметры и прошедшие валидацию. в вашем случае, если вас понял, в form.php
 
 Top
Reniksa
Отправлено: 08 Ноября, 2010 - 14:23:35
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Ого... Я уже такого тут нагородила

CODE (htmlphp):
скопировать код в буфер обмена
  1.   $q = @mysql_query("INSERT INTO news values(null, '".$rub."', '".$zag."', '".$rzag."', '".$text."' )");  
  2.  $q1 = "SELECT id FROM news WHERE rub = '".$rub."'";
  3.  $r1 = mysql_query($q1);
  4.  echo '<br>'.mysql_result($r1,0,0).'<br/>';
  5.   echo '<a href="edit.php?id='.mysql_result($r1,0,0).'"> Редактировать</a><br/>';


а оказывается одной функцией делается
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB