|
|
|
| Потребителю выводится его информация для изменения.
Рассмторим вывод логотипа и предложение поменять логотип на новый. Возникают трудности с записью нового логотипа в БД в переменную myrow["logo"]
<td>
<input value= "<? printf ("<img src='%s'>", $myrow["logo"]); ?>" type="text" name="logo"'>
// выводим старый логотип
</td>
<td> // позволяем загрузить новый логотип
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>
</td>
|
| |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 02:17)
| | Имеется в виду редактирование, т.е. происходит замена старого логотипа новым? Тут нужно выполнить две задачи:
1. Удалить старый логотип с жесткого диска
2. Обновить запись logo таблицы при помощи оператора UPDATE. Для составления оператора вам также потребуется первичный ключ таблицы, чтобы его можно было задействовать в WHERE-условии. Какова структура вашей таблицы (SHOW CREATE TABLE tbl)? | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 13:04)
| | структуру хотел увидеть
Запрос
<?php show create table 'pu'?>
ошибочный
Parse error: syntax error, unexpected T_STRING in | |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 19:56)
| | Это SQL-запрос, его нужно выполнять в MySQL-клиенте (phpMyAdmin, mysql.exe). | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 20:04)
| | Почему ошибка?
#1064 - 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 ''pu'' at line 1
SHOW CREATE TABLE 'pu' | |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 20:12)
| | Уберите кавычки в имени таблицы
PS Если выполняете запрос в phpMyAdmin, чтобы получить полный результат нажмите "Параметры" -> Развернутое отображение данных -> ОК | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 20:15)
| | CREATE TABLE `pu` (
`id_pu` int(11) NOT NULL,
`title` varchar(255) NOT NULL,
`full_name` text NOT NULL,
`short_name` text NOT NULL,
`welcome_name` text NOT NULL,
`id_town` int(11) NOT NULL,
`id_region` int(11) NOT NULL,
`id_state` int(11) NOT NULL,
`address` varchar(255) NOT NULL,
`tel` varchar(255) NOT NULL,
`fax` varchar(255) NOT NULL,
`accreditation` varchar(255) NOT NULL,
`licence` varchar(255) NOT NULL,
`organ` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`site` varchar(255) NOT NULL,
`text` text NOT NULL,
`ling` text NOT NULL,
`logo` varchar(255) NOT NULL,
`advertisment` int(1) NOT NULL DEFAULT '0',
`approved` tinyint(4) NOT NULL DEFAULT '0',
`updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY `id_town` (`id_town`),
KEY `id_region` (`id_region`),
KEY `id_state` (`id_state`),
KEY `id_pu` (`id_pu`)
) ENGINE=MyISAM AUTO_INCREMENT=155 DEFAULT CHARSET=cp1251 | |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 20:19)
| | Фактически вам нужно выполнить вот такой запрос
UPDATE pu
SET logo='новое_имя_файла.jpg'
WHERE id_pu = 12
| где 12 - первичный ключ изменяемой записи (его удобно передавать через скрытое поле HTML-формы). | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 20:27)
| | А как можно связать вот эти два файла?
<td>
<input value= "<? printf ("<img src='%s'>", $myrow["logo"]); ?>" type="text" name="logo"'>
// выводим старый логотип
</td>
<td> // позволяем загрузить новый логотип
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>
</td>
|
UPDATE pu
SET logo='новое_имя_файла.jpg'
WHERE id_pu = 12
|
| |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 23:14)
| | 1. Новый файл загружается в обход этой формы и пользователь знает его имя?
2. Не понятно также, почему в текстовое поле вставляется тэг <img> причем без экранирования при помощи htmlspecialchars()?
Давайте сначала с HTML-формой разберемся, какая у неё задача и что она должна позволять делать? | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 23:32)
| | на странице предприятия пользователь может изменить свои данные. Это работает. Сейчас хочу добавить возможность добавления логотипа.
Напишу в личку сайт | |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 23:37)
| | Т.е. речь идет о том, что он может загрузить другой логотип? Или он может выбирать из фотогалереи? Каков механизм изменения логотипа? | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 23:39)
| | он загружает свой логотип. | |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 23:42)
| | Тогда ему нужно дать возможность загрузить новый логотип? Т.е. речь идет не о текстовом поле type='text', а о поле для загрузки файла type='file'? Если оно пустое, оставляем поле в базе данных без изменений, если заполнено новым файлом - удаляем старый, загружаем новый, и обновляем таблицу в базе данных? | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 23:45)
| | совершенно верно. | |
|
|
|
|
|
|
|
для: Василий
(31.12.2011 в 23:47)
| | Помимо этого, нам надо зать какое поле править? У вас есть где-то значение первичного ключа записи таблицы, которую мы правим (нам это нужно, чтобы править только одну запись, а не все записи таблицы)?
<td> // позволяем загрузить новый логотип
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="hidden" name="id_pu" value='????'><br>
<input type="submit" value="Загрузить"><br>
</form>
</td>
| Поле типа hidden как раз для этого заведено. | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 23:53)
| | 'id_pu - у каждого предприятия уникальное. оно может служить "ключом"
<center><form action="pu_action.php" method="get" name="f2">
<p>Заметили неточность – сообщите об ошибке!
<input type='hidden' name='id_pu' value='<?php echo $myrow3['id_pu']; ?>'>
|
| |
|
|
|