![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
thomas |
|
||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: нет Всего: 65 |
Приветствую.
Преамбула. Студент в вечерней вышке. По "нормальному" учусь писать на .NET(C# VB). В этом семестре должны были изучать ASP.NET. Но вмешались обстоятельства (наш штатный препод замещает заболевшего директора) и нам дали препода-"пацана" - учите мол пока PHP. "Пацан" толком ничего не обьясняет, а дает задания. Мол люди взрослые - сами разберетесь. Суть проблемы. Задали нам форум написать на PHP. Сделал три таблицы в БД (форумы, топики, посты). Так вот ни как не могу сделать INSERT поста в таблицу базы. Поле ID в таблице базы - автонумерация. На странице сделал несколько нужных форм. По идее из предыдущей страницы должен получить ID топика. Но обновления БД не происходит. Третий день читаю форум, но так ничего и не нашел. Просмотрел много тем касающихся БД и INSERT. Вроде все делаю правильно. НО ... Посмотрите код и направте на путь истинный. Заранее благодарю.
Да, соединение с базой есть, топики по форумам показываются, посты в топиках тоже (вносил в ручную через phpmyadmin) И после нажатия кнопки "Отослать" никаких сообщений об ошибке не выводиться, а просто переход на главную страницу форума. ЗЫ прежде чем создавать тему, честно пытался сам найти инфу на форуме и в инете. Не шмог. ![]() Это сообщение отредактировал(а) thomas - 27.10.2007, 00:09 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||
|
|||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 3 Всего: 22 |
как обьявлена таблица?
если автоинкремент поле - не вставляйте PostID (уберите из запроса вообще) |
|||
|
||||
thomas |
|
||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: нет Всего: 65 |
Vaulter,
Таблица создана в phpmyadmin на сервере. Все файлы лежат там же. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||
|
|||||
HotHead |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: нет Всего: 4 |
Во-первых тег <form> пропущен. Он в скрипте есть? Во-вторых думаю, что до mysql дело вообще не дошло, т.к. чтобы отработала конструкция $_REQUEST[submit], надо иметь в форме что-нибудь с атрибутом name="submit".
Если бы я обкатывал эту штуко то: 1) Взял бы таблицу в теги <form method="post"> ... </form> 2) Дал бы кнопке имя: <input type='submit' value='Versturen' name='submit'> 3) Почему на серверной части и $_POST и $_GET? Для избегания путаницы лучше использовать везде $_REQUEST, пока не разберётесь, когда $_POST, а когда $_GET. 4) Перед закрытием базы написал бы проверочку того, как прошёл запрос: echo ($result)?("Запрос прошёл"):("Запрос не прошёл"); Если добавив пункт 4 ничего не увидите, то значит до БД дело и не дошло. |
|||
|
||||
flashaa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 2 Всего: 25 |
В смысле покажите show create table. У вас везде написано вот так... Но это же ошибка. Ключ должен быть заключен в кавычки, в противном случае PHP расценивает то, что в квадратных скобках как константу. http://ru2.php.net/manual/ru/language.types.array.php И вообще форум не такой информационно-содержательный источник, чтобы читать взапой. Лучше потратьте то же время на чтение документации. ![]() |
|||
|
||||
thomas |
|
||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: нет Всего: 65 |
HotHead,
Приветствую. Теги формы не были пропущены, в них была заключена вся таблица на странице. А имя для submit я действительно пропустил. Заменил POST и GET на REQUEST. В общем пока то, что не получалось решил. Всем спасибо. flashaa,
Ну прежде чем вопросы задавать, предпочитаю сначала заюзать поиск по форуму. Думаю, так правильнее. А документация, да ЭТО СИЛА, согласен на 153% Это сообщение отредактировал(а) thomas - 27.10.2007, 20:34 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||
|
|||||
thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: нет Всего: 65 |
В принципе проблему решил таким образом.
Для общего развития готов принять критику,дополнения и подсказки правильных решений. Еще раз всем спасибо за помощь. ![]() Это сообщение отредактировал(а) thomas - 27.10.2007, 20:31 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
HotHead |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: нет Всего: 4 |
flashaa,
$_REQUEST[submit] - не смертельно, хотя так делать конечно не надо. Если скрипт не найдёт константы с таким именем, то выдаст предупреждение уровня E_NOTICE и продолжит работу так, как будто это строка. thomas, смотрите что написал flashaa. Гораздо лучше действительно брать ключ в кавычки (' или "). В будущем избавит от кучи неприятностей. Так же как и "<?php" вместо "<?". Не помню как называлась директива (кажется short_open_tag), но если она в php.ini не прописана, то при переносе на новое место вас может ждать такой сюрприз, что ничего работать не будет. Лучше заранее избавить себя от возможных проблем прописывая лишние три символа. Ну и по мелочи. В date текущая дата используется по умолчанию, так что можно писать просто $time = date("Y-m-d H:i:s"); В остольном вполне достойно для начала. |
|||
|
||||
thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: нет Всего: 65 |
HotHead,
![]() Рекомендации правильные и своевременные. Это сообщение отредактировал(а) thomas - 27.10.2007, 22:21 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
flashaa |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 2 Всего: 25 |
phpmyadmin это только php-оболочка для отправки запросов к серверу БД, поэтому суть не меняется, одни и те же запросы, только в данном случае через удобный интерфейс.
show create table tbl_name; этот запрос выводит полное описание таблицы, т.е. если более точно - запрос create table для того чтобы создать таблицу, идентичную tbl_name. Будут указаны все поля, их типы, аттрибуты, значения по умолчанию, комментарии, ключи таблицы, её движок (ENGINE), кодировка всех текстовых полей и кодировка самой таблицы. Поскольку все характеристики таблицы видны, эта команда очень полезна для отладки, ну и для тех, кто хочет понять, как была сделана Ваша таблица. Очень полезная команда. В phpmyadmin можно запустить любой запрос, введя его во вкладке SQL, хотя вполне вероятно, что подобный вывод для любой таблицы можно получить через интерфейс phpmyadmin.
Это сообщение отредактировал(а) flashaa - 29.10.2007, 17:51 |
|||
|
||||
Flat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
народ сильно не бейте я с тем же вопросом...
дает ошибку 'Ошибка выполнения запроса'... че тока не пробовал... и яндекс замучил и форум ваш ) и ученики листал ... толи гдето чето проглядел ... толи че.. в базе запись не появляеться Это сообщение отредактировал(а) Flat - 28.7.2009, 20:30 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 3 Всего: 37 |
Вместо 'Ошибка выполнения запроса' надо писать mysql_error()
Тогда, к нашему удивлдению, мы сможем прочесть, в чем состоит проблема. It's a magic |
|||
|
||||
Photon |
|
|||
![]() Злобный программер ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 27.2.2009 Где: Таганрог Репутация: 1 Всего: 12 |
Flat, это что?
Как я понимаю, $dbname - это имя базы данных. Так какого ж оно хрена делает вместо необязательного параметра указатель_на_соединение? С чего бы при таком раскладе что-то куда-то добавлялось? -------------------- With best regards.. |
|||
|
||||
Flat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.12.2003 Репутация: нет Всего: нет |
Спасибо... насчет не обязательности как то странно... без него не работало, хотя селект есть. установил правильный указатель и все получилось |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |