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

Форум MySQL

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

 

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

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

тема: Редактирование записей
 
 автор: Sergeous   (18.03.2007 в 00:55)   письмо автору
 
 

Есть таблица news, поля id, date, text
Нужно чтобы в административной новости открывались сразу же для редактирования, т.е. в полях формы <input... value="">...

Нашел тут у вас похожу давнишнюю тему, но там много не то.

Новости выводятся так
<?php

$dbhost = "localhost"; // Хост
$dbuser = "12345"; // Имя пользователя
$dbpassword = "12345"; // Пароль
$dbname = "12345"; // Имя базы данных


$link = mysql_connect($dbhost, $dbuser, $dbpassword);

mysql_select_db($dbname, $link);

$query="SELECT * FROM 'news' ORDER BY `id` ASC LIMIT 0, 30";
$result=mysql_query($query, $link);

echo('<table>');
while ($row = mysql_fetch_row($result)) {
print("<tr><td>". $row[1]. " ' </td>");
print("<td>". $row[2]. " ' </td>");
print("<td>". $row[3]. "</td></tr>");

};
echo('</table>');
mysql_close($link);

?>


На первый взгляд вроде это легко, но чего то неполучается...

   
 
 автор: cheops   (18.03.2007 в 01:52)   письмо автору
 
   для: Sergeous   (18.03.2007 в 00:55)
 

Не понятно, что вызывает сложности... выводите напротив каждой новостной позиции ссылку
editnews.php?id=$row[id]. В файле editnews.php выполняйте и обрабатывайте запрос
SELECT * FROM news WHERE id = $_GET[id];
Полученные значения подставляйте в атрибут value тэга input.

   
 
 автор: Sergeous   (18.03.2007 в 02:03)   письмо автору
 
   для: cheops   (18.03.2007 в 01:52)
 

А вот что значит, мне выводится You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'news WHERE id=2' at line 1 ?

   
 
 автор: cheops   (18.03.2007 в 12:52)   письмо автору
 
   для: Sergeous   (18.03.2007 в 02:03)
 

Это означает, что в SQL-запросе синтаксическая ошибка перед news - выведите полностью весь запрос в окно браузера - как он сейчас выглядит?

   
 
 автор: Sergeous   (18.03.2007 в 19:44)   письмо автору
 
   для: cheops   (18.03.2007 в 12:52)
 

Вот запрос


$query = "SELECT * FROM news WHERE id = $_GET[id]";

   
 
 автор: Sergeous   (18.03.2007 в 21:01)   письмо автору
 
   для: cheops   (18.03.2007 в 12:52)
 

С этим я разобрался, но вот почему изменения не заносятся в базу данных

Осуществляется следующий запрос

$query = "UPDATE news SET text = '".$_POST['name']."', time = '".$_POST['text']."' WHERE id=".$_POST['id']." ";


К запросу попадаем через форму

<form method=post action=edit.php>
<input type=hidden name=id value=1>
<input name=name value=Новость!>
<input name=text value=Сегодня эта новость>
<input type=submit value=Ред.></form>

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

   
 
 автор: Trianon   (18.03.2007 в 21:37)   письмо автору
 
   для: Sergeous   (18.03.2007 в 21:01)
 

text = (name)
time= (text)

так и должно быть?

   
 
 автор: Sergeous   (18.03.2007 в 22:00)   письмо автору
 
   для: Trianon   (18.03.2007 в 21:37)
 

Нет, так не должно быть, но проблема от этого не исчезает

$query = "UPDATE news SET name = '".$_POST['name']."', text = '".$_POST['text']."' WHERE id=".$_POST['id']." ";

   
 
 автор: Trianon   (19.03.2007 в 09:44)   письмо автору
 
   для: Sergeous   (18.03.2007 в 22:00)
 

что показывает echo $query .' / '. mysql_error()?

   
 
 автор: Sergeous   (19.03.2007 в 14:09)   письмо автору
 
   для: Trianon   (19.03.2007 в 09:44)
 

В том о и дело, ошибок нникаких не показывает...

   
 
 автор: Trianon   (19.03.2007 в 14:12)   письмо автору
 
   для: Sergeous   (19.03.2007 в 14:09)
 

echo $query в любом случае что-нибудь да должен показать.

   
 
 автор: Sergeous   (19.03.2007 в 22:35)   письмо автору
 
   для: Trianon   (19.03.2007 в 14:12)
 

Файлы скрипта...

   
 
 автор: Sergeous   (19.03.2007 в 14:21)   письмо автору
 
   для: Sergeous   (19.03.2007 в 14:09)
 

А что за echo $query .' / '. mysql_error()?
Вы имеете ввиду вписать это в код?

   
 
 автор: Trianon   (19.03.2007 в 14:25)   письмо автору
 
   для: Sergeous   (19.03.2007 в 14:21)
 

Я имею в виду следующее.
Не могли бы Вы привести здесь оконечный текст sql-запроса. Такой, каким он приходит внутрь mysql_query(). Потому что не зная запроса, трудно гадать о причинах его неработоспособности.
Как этот текст получить - непринципиально. Наиболее простой способ - выполнить echo $query; сразу перед mysql_query($query);

mysql_error() же выдает причину ошибки. И его тоже стоит хотя бы иногда смотреть.

   
 
 автор: Sergeous   (19.03.2007 в 22:38)   письмо автору
 
   для: Trianon   (19.03.2007 в 14:25)
 

К сожалению, так и не понял что нужно привести... чуть выше я выложил файлы скрипта, может быть взгляните?...

   
 
 автор: Trianon   (20.03.2007 в 00:01)   письмо автору
 
   для: Sergeous   (19.03.2007 в 22:38)
 

Ок. Завтра, если никто не опередит....

   
 
 автор: Trianon   (20.03.2007 в 09:30)   письмо автору
 
   для: Sergeous   (19.03.2007 в 22:38)
 

Имя таблицы изменилось с news на match . При этом в запросе UPDATE Вы не заключили его в `такие` кавычки. А ведь это зарезервированное слово.

   
 
 автор: Sergeous   (20.03.2007 в 17:06)   письмо автору
 
   для: Trianon   (20.03.2007 в 09:30)
 

Большое спасибо! Именно в таких кавычках и заключалась проблема!

   
Rambler's Top100
вверх

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