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 :: Не выводит результат в браузере [6]
Покинул форум
Сообщений всего: 67
Дата рег-ции: Авг. 2010
Помог: 3 раз(а)
KuPbI4 пишет:
где то понял конечно, а где-то нет. буду разбираться, но все-таки надо хорошо знать пхп и суть в нем скрипта, что именно программист должен написать
А знаете почему так? Потому что Вы хотите все и сразу. А вот хорошенько подучить мат. часть нет желания или не считаете нужным, авось само прийдет.
Когда человек начинает учится читать он сначала изучает алфавит, а потом начинает читать слова, словосочетания потом предложения. Вот так и тут если вы до этого не имели опыта в программировании то нужно все делать постепенно. Изучать последовательно темы от простого к сложному, еще не плохо вести конспект, конечно не переписывая всю книгу, но делая заметки по самым важным моментам изучаемой темы, так как это позволяет лучше запомнить то что читаешь, плюс потом можно использовать эти записи как справочник, чтобы не перелистывать книгу в поисках ответа на нужный вопрос. Сначала нужно писать маленькие скрипты, чтобы разобраться как это работает, так как даже в скрипте из нескольких строк можно накосячить. А потом переходить к более сложным.
Почитайте начальную литературу по базам данных, по языку SQL. Вы узнаете что такое "ключевые поля", что такое "нормализация базы данных", для чего нужны индексы, что такое связи в БД.
Даже в Вашем случае с одной таблицей я бы сделал две, ну это чисто ИМХО. Тоесть одна таблица с данными по авто (в том числе и модель), а вторая таблица-справочник, для марок авто (но тут нужно знать что такое связи между таблицами). Тогда бы у Вас одинаковые автомобили имели бы одинаковый формат названия (марки). Например, автомобиль ВАЗ можно записать и как Ваз, а можно ВАЗ 2108 или вообще LADA. И представьте сколько вариантом запроса может быть если потребуется отобрать из каталога все автомобили марки ВАЗ?
KuPbI4
Отправлено: 07 Сентября, 2010 - 16:14:52
Частый гость
Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Object пишет:
А знаете почему так? Потому что Вы хотите все и сразу. А вот хорошенько подучить мат. часть нет желания или не считаете нужным, авось само прийдет.
Когда человек начинает учится читать он сначала изучает алфавит, а потом начинает читать слова, словосочетания потом предложения. Вот так и тут если вы до этого не имели опыта в программировании то нужно все делать постепенно. Изучать последовательно темы от простого к сложному, еще не плохо вести конспект, конечно не переписывая всю книгу, но делая заметки по самым важным моментам изучаемой темы, так как это позволяет лучше запомнить то что читаешь, плюс потом можно использовать эти записи как справочник, чтобы не перелистывать книгу в поисках ответа на нужный вопрос. Сначала нужно писать маленькие скрипты, чтобы разобраться как это работает, так как даже в скрипте из нескольких строк можно накосячить. А потом переходить к более сложным.
Почитайте начальную литературу по базам данных, по языку SQL. Вы узнаете что такое "ключевые поля", что такое "нормализация базы данных", для чего нужны индексы, что такое связи в БД.
Даже в Вашем случае с одной таблицей я бы сделал две, ну это чисто ИМХО. Тоесть одна таблица с данными по авто (в том числе и модель), а вторая таблица-справочник, для марок авто (но тут нужно знать что такое связи между таблицами). Тогда бы у Вас одинаковые автомобили имели бы одинаковый формат названия (марки). Например, автомобиль ВАЗ можно записать и как Ваз, а можно ВАЗ 2108 или вообще LADA. И представьте сколько вариантом запроса может быть если потребуется отобрать из каталога все автомобили марки ВАЗ?
изучал БД на 2ом курсе. дело не в этом, дело в том, что проблемы с программированием PHP. поднимал тетради SQL и делал запросы. ничего сложного. только проблемы с PHP.
возник маленький вопрос(если хорошо объясню), возможно ли сделать массив $img ? чтоб я мог загрузить хоть 1-3 картинки и не надо $img1 и $img2
вот допустим, так:
это добавление картинок в БД
echo"Введите ID, который вы узнали в списке данных из БД и добавить фотографии в БД. Если не знаете, то для этого нужно <b>ТОЧНО</b> узнать, идем на просмотр данных из БД
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
KuPbI4 пишет:
как быть?
А, извиняюсь, не заметил ещё изменение у $_POST['img*
Нет, из поста всё равно надо дёргать каждую отдельно запись. Или, вместо изменения имени в форме imgN записать img[], тогда в $_POST придёт массив.
А вот так уже не получится, в строку массив вставляется самостоятельно только как "Array", тут надо массив обрабатывать отдельно. Кстати, вы тут забыли условие указать.
А вот так уже не получится, в строку массив вставляется самостоятельно только как "Array", тут надо массив обрабатывать отдельно.
с вами согласен.
как должно?
Мелкий пишет:
Кстати, вы тут забыли условие указать.
условие чего?
3.
Мелкий пишет:
довольно забавная защита данных.
довольно забавная? это еще почему? приведет к взлому?
Мелкий пишет:
Экранировать-то кто будет перед передачей в БД?
ну кто же - я ведь
я сделал ведь авторизацию и пароль админки в md5)
или что то тут не так, поправьте меня)
Object
Отправлено: 08 Сентября, 2010 - 10:08:29
Гость
Покинул форум
Сообщений всего: 67
Дата рег-ции: Авг. 2010
Помог: 3 раз(а)
KuPbI4 пишет:
2. с вами согласен.
как должно?
Если у Вас $img будет массивом, а не строкой то этот запрос "UPDATE cars SET img='$img[0]'" нужно повторять в цикле, перебирая каждый элемент массива $img[0]' $img[1]', $img[2]' и т.д.
KuPbI4 пишет:
условие чего?
Почти во всех запросах UPDATE нужно использовать условие WHERE для того чтобы обновлялись только нужные записи. Вы же какраз не используете условие WHERE поэтому у Вас обновится поле img до конца таблицы и в базе по всем записям будет одна картинка, вставленная последней.
KuPbI4 пишет:
3. довольно забавная? это еще почему? приведет к взлому?
ну кто же - я ведь
я сделал ведь авторизацию и пароль админки в md5)
или что то тут не так, поправьте меня)
Авторизация это как бронированная дверь в офис, никто левый не войдет, но что если кто-то из сотрудников сойдет с ума или его подкупят и он решит все сломать внутри?
Мелкий
Отправлено: 08 Сентября, 2010 - 10:47:17
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
KuPbI4 пишет:
довольно забавная? это еще почему? приведет к взлому?
Такова уж информационная безопасность - не доверять посторонним, и ещё больше не доверять зарегистрированным пользователям. Хооорошим таким параноиком надо быть
А у вас сейчас очень красиво можно обрушить всю таблицу cars (впрочем, сейчас она и сама умрёт от первого изменения данных, как уже пояснили, нет условия для обновления данных), достаточно передать вместо img строку "ololo' --" и всё, вся таблица будет состоять из одинаковых записей ololo. А имея терпение, можно и все остальные поля подобрать и затереть.
KuPbI4 пишет:
так записать?
Зависит от того, что в конце концов приходит с формы
----- PostgreSQL DBA
cHameleon
Отправлено: 08 Сентября, 2010 - 10:54:09
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Эту тему пора переносить в "Напишите за меня пожалуйста"
----- берём notepad++ и творим пэхэпэ-мир
KuPbI4
Отправлено: 08 Сентября, 2010 - 10:56:29
Частый гость
Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Object пишет:
Почти во всех запросах UPDATE нужно использовать условие WHERE для того чтобы обновлялись только нужные записи. Вы же какраз не используете условие WHERE поэтому у Вас обновится поле img до конца таблицы и в базе по всем записям будет одна картинка, вставленная последней.
Если у Вас $img будет массивом, а не строкой то этот запрос "UPDATE cars SET img='$img[0]'" нужно повторять в цикле, перебирая каждый элемент массива $img[0]' $img[1]', $img[2]' и т.д.
как я вас понимаю, должен выглядит такой код, но пишет
Цитата:
Поздравляю вы ввели верный ID. Введите имя файла картинки №1 в БД. (c расширением .jpg, .jpeg, .png, .bmp), жмем ту же страницу
<form action='edit_form.php'><input type='submit' value='Жмем' onclick='history.go(-1);return false;'></form>
echo"Введите ID, который вы узнали в списке данных из БД и добавить фотографии в БД. Если не знаете, то для этого нужно <b>ТОЧНО</b> узнать, идем на просмотр данных из БД
Вот теперь у меня ощущение, что тут совсем запутались Почему после запроса на обновление данных стоит отклик о добавлении?
Да и вообще что-то я смысл потерял запроса - 3 раза перезаписывается одно и то же поле одной и той же строки, пусть и разными данными, но сохранится-то только последнее переданное.
----- PostgreSQL DBA
KuPbI4
Отправлено: 08 Сентября, 2010 - 11:13:34
Частый гость
Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Мелкий пишет:
Почему после запроса на обновление данных стоит отклик о добавлении?
Потому что, отдельный скрипт добавление данных без картинок, а это с картинками.
Если напишу такой запрос
окажется лишним, и поэтому я написал, чтоб отклик был о добавлении. upd:
упс.. надо было убрать две формы и оставить только одну, и тогда запись добавлена,
но сама запись не записалась....
UPDATE это не добавление, а обновление записи, так что запись будет не добавлена, а изменена ну типа того. Но это не столь важно что Вы там будете выводить, вопрос в другом зачем сначала вставлять запись, потом ее обновлять? Может стоит сразу добавлять запись с картинками? И в третьих, как Вам уже сказали вы не сможете сохранить 3 картинки в одном поле одной и той же записи.
Вообще объясните свою задачу и возможно Вам подскажут как это реализовать не извращенными способами, потому что кажется у Вас это именно так.
Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Object пишет:
Строка номер раз: у Вас как я понимаю 3 картинки, а цикл будет работать 4 раза.
Во-вторых, UPDATE это не добавление, а обновление записи, так что запись будет не добавлена, а изменена ну типа того. Но это не столь важно что Вы там будете выводить, вопрос в другом зачем сначала вставлять запись, потом ее обновлять? Может стоит сразу добавлять запись с картинками? И в третьих, как Вам уже сказали вы не сможете сохранить 3 картинки в одном поле одной и той же записи.
Вообще объясните свою задачу и возможно Вам подскажут как это реализовать не извращенными способами, потому что кажется у Вас это именно так.
Господи...
Add - это добавление(НО БЕЗ КАРТИНОК!), update - это обновление(есть отдельный скрипт редактирование там только ДАННЫЕ редактировать, а это тоже редактирование НО Добавление картинок), я ПРОСТО ТАК написал оповещение о добавлении картинок в БД.
Уже увидел что не смогу сохранить 3 картинки. Значит я плохо реализовал задачу. Ну чтож, вопрос снят, если не могу реализовать задачу.
Покинул форум
Сообщений всего: 67
Дата рег-ции: Авг. 2010
Помог: 3 раз(а)
KuPbI4 пишет:
Уже увидел что не смогу сохранить 3 картинки.
Вы можете сохранить 3 картинки только в отдельных полях, если Вы уверенны что к каждой записи ВСЕГДА будет только 3 изображения, то нужно создать 3 поля, например: img1, img2, img3.
Но еще раз повторюсь, объясните что Вам нужно и думаю Вам помогут составить грамотный алгоритм.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.