Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не происходит обновление данных в таблице.
 
 автор: 10100100   (27.11.2005 в 09:02)   письмо автору
 
 

в общем сабж...
должны обновлятся данные в таблице но этого не происходит...
вот файл добавления комментария:

<?php
include 'config.php';
$query "SELECT * FROM cms WHERE id_news='".$_GET['id_news']."'";
$ath = @mysql_query($query); 
if(
$ath

    while(
$news mysql_fetch_array($ath)) { 
echo 
$news['name_new'];
echo (
"<br />");
echo 
$news['time'];
echo (
"<br />");
echo (
"<br />");
echo 
$news['pred_new'];
echo (
"<br />");
echo (
"<br />");
echo 
$news['all_new'];
echo (
"<br />");
echo (
"<br />");
                                           }
}

   
$refresh "<input type=reset value=Отменить>";
?>
<form action="add_com.php" method="post">
<table cellspacing="0" cellpading="0" border="1" bordercolor="000000" width="400">
 <tr><td>
  <table cellspacing="0" cellpading="0" border="0">
   <tr><td>
   Ваше Имя:
   </td>
   <td>
   <input type=text name=name>
   </td></tr>
   <tr><td>
   Ваш Комментарий:
   </td>
   <td>
   <textarea ROWS=10 COLS=40 name="comment"></textarea>
   </td></tr>
   <tr><td>
   <input type="submit" value="Отправить">
   </td>
   <td>
<?php
  
echo '<input type=hidden name=id_news value='.$news['id_news'].'><br />'
  echo 
"$refresh";
?>
   </td></tr>
</table>
</form></td>
        </tr>
    </table>



это его обработчик:

<? 
include "config.php";

$id_comments $_POST['id_comments']; 
$id_news $_POST['id_news'];
$name $_POST['name'];  
$comment $_POST['comment']; 
$time $_POST['time']; 

$comment nl2br($comment);
$query 'UPDATE comments SET id_comments="'.$id_comments.'", id_news="'.$id_news.'", name="'.$name.'", comment="'.$comment.'", time="'.$time.'" WHERE id_news="'.id_news.'"'

  if(!
mysql_query($query)) 
  { 

    exit(
"Ошибка - ".mysql_error()); 
  } 
header("location:http://localhost/cms/index2.php");
?> 

.
А это сама таблица...

CREATE TABLE 'comments' (
'id_comments' INT NOT NULL AUTO_INCREMENT,
'id_news' TINYTEXT,
'name' TINYTEXT,
'comment' TINYTEXT DEFAULT NULL,
'time' DATETIME DEFAULT NULL ,
PRIMARY KEY (id_comments)
) TYPE = MYISAM;

   
 
 автор: cheops   (27.11.2005 в 13:29)   письмо автору
 
   для: 10100100   (27.11.2005 в 09:02)
 

В обработчике выведите запрос $query и закомментируйте редирект
<? 
include "config.php"

$id_comments $_POST['id_comments']; 
$id_news $_POST['id_news']; 
$name $_POST['name'];   
$comment $_POST['comment']; 
$time $_POST['time']; 

$comment nl2br($comment); 
$query 'UPDATE comments SET id_comments="'.$id_comments.'", id_news="'.$id_news.'", name="'.$name.'", comment="'.$comment.'", time="'.$time.'" WHERE id_news="'.id_news.'"'
echo 
$query;

  if(!
mysql_query($query)) 
  { 

    exit(
"Ошибка - ".mysql_error()); 
  } 
// header("location:http://localhost/cms/index2.php"); 
?>

Как выглядите запрос, который выводится в окно браузера?

   
 
 автор: 10100100   (27.11.2005 в 13:55)   письмо автору
 
   для: cheops   (27.11.2005 в 13:29)
 

выдвёт вот это:

UPDATE comments SET id_comments="", id_news="", name="243", comment="2345е", time="" WHERE id_news="id_news" 


но почему?

   
 
 автор: cheops   (27.11.2005 в 20:24)   письмо автору
 
   для: 10100100   (27.11.2005 в 13:55)
 

А у вас id_news без знака $... т.е. следует писать $id_news.

   
 
 автор: 10100100   (28.11.2005 в 10:45)   письмо автору
 
   для: cheops   (27.11.2005 в 20:24)
 

тьфу шайтан - точно.... ща проверю (в капле)

   
 
 автор: 10100100   (28.11.2005 в 11:44)   письмо автору
 
   для: cheops   (27.11.2005 в 20:24)
 

не - та же капуста.. не выводит почему то данные id_news Id_comment и time... ничё не понимаю...

   
 
 автор: cheops   (28.11.2005 в 13:54)   письмо автору
 
   для: 10100100   (28.11.2005 в 11:44)
 

Распечатайте массив $_POST - в нём эти элементы присутствуют?
<?php
  
echo "<pre>";
  
print_r($_POST);
  echo 
"</pre>";
?>

   
 
 автор: 10100100   (28.11.2005 в 14:09)   письмо автору
 
   для: cheops   (28.11.2005 в 13:54)
 

нет присутствуют лишь те элементы которые ющер непосредственно вводит в две строки ИМЯ И СООБЩНИЕ

   
 
 автор: cheops   (28.11.2005 в 19:59)   письмо автору
 
   для: 10100100   (28.11.2005 в 14:09)
 

Вот что не нравится в первом блоке, у вас mysql_fetch_array() выполняется в цикле
while($news = mysql_fetch_array($ath))

причём в зависимости от условия, посмотрите в HTML-коде страницы формы id_news присутствует в скрытом поле? Кроме того, непонятно откуда берётся поле time - оно вообще отсутствует в HTML-форме и следовательно не может попасть в POST-данные. Может вместо него лучше написать NOW(). Какое время хранится в этом поле?

   
 
 автор: 10100100   (30.11.2005 в 14:37)   письмо автору
 
   для: cheops   (28.11.2005 в 19:59)
 

хм. действительно дело в цикле и ещё в парочке косячков... но почему такая заморочка с циклом получилась???

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования