[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не размещаются ответы на вопросы анкеты в БД
aryumin
Добрый день!
Только начинаю свой путь в освоении php поэтому вопрос элементарнийший для Вас.
Мне необходимо создать анкету, а результаты анкетирования собрать в БД mysql. Раньше я эти действия производил через Dreamvawer, но он меня в очередной раз полностьб достал, тем что не желает подключаться через SSH к БД. Каждый раз не знаю, что меняю в настройках и начинает работать в итоге по истечении многих часов какой-то бестолковой работы "наугад". Эта ситуация мне надоела и решил разобраться в php, чтобы Дрим использовать только для создания костяка анкеты в html.
Почтал инструкции и добавил исполняющий файл php3 (извините, если неправильно выражаюсь - для меня эта тема очень новая - терминов ещё не успел усвоить), чтобы он обрабатывал анкету и пересылал данные в таблицу базы данных mysql.
Реакция нормальная на заполнения - вживлено в код сообщение об успехе отправки данных, но в самой таблице просто появляется новая строка и все ячейки благополучно пустуют... В общем данных там нет - просто добавляется новая строка - пустая....
Ниже прилагаю тестовую анкету на три вопроса (смысла в вопросах нет - надо просто понять, где я ошибаюсь) и код файла обработки анкеты, который переправляет данные в таблицу.

Пожалуйста подскажите, где я обшибаюсь... ну вообще не могу понять(((((((((((( Времени цже почти нет, а анкету надо срочно предоставить и пустить в "поле"
Заранее спасибо!!!

НИЖЕ ФАЙЛ ОБРАБОТКИ

<?
/* Этот скрипт получает переменные из request.html */

/* Некоторые переменные */

$hostname = "yayar.ru";
$username = "мой логин";
$password = "мой пароль";
$dbName = "имя БД";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "anketa";

/* email администратора */
$adminaddress = "почта";

/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");

@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");


/* Вставить информацию о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES('$name','$surname', '$stupid')";

$result = MYSQL_QUERY($query);

PRINT "Информация о вас занесена в базу данных.";

/* Закрыть соединение */
MYSQL_CLOSE();
?>



НИЖЕ ФАЙЛ АНКЕТЫ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>

<body>

<form id="form1" name="form1" method="post" action="ank.php3">
<p>Имя

<label for="name"></label>
<input type="text" name="name" id="name" />
</p>
<p>
<label for="surname">Фамилия</label>
<input type="text" name="surname" id="surname" />
</p>
<p>Настроение хорошее?</p>
<p>
<input type="radio" name="stupid" id="stupid" value="1" />
<label for="stupid">да</label>
<br />
<input type="radio" name="stupid" id="2" value="2" />
<label for="2">нет</label>
</p>
<p>
<input type="submit" name="button" id="button" value="Отправить" />
</p>
<p>&nbsp;</p>
</form>
<p>&nbsp;</p>
</body>
</html>



Спустя 1 час, 35 минут, 27 секунд (11.03.2012 - 04:21) Bodich написал(а):
не вижу как ты принимаешь post переменные это раз
желательно заключать код в бб теги - два
смотри как правильно пример указываешь поля потом переменные )))

$query="INSERT INTO address_book (first_name,last_name,phone_number) VALUES ('$_POST[first_name]','$_POST[last_name]','$_POST[phone_number]')"; 

Спустя 5 минут, 52 секунды (11.03.2012 - 04:27) aryumin написал(а):
извини, я ничего не понял ВООБЩЕ))))))
а нет какой-то максимальной простой конструкции файла обработчика??
Я вообще никак не могу понять что мне сделать, что б создать анкету...

Та конструкция, которую я отправил в первом сообщении взята с другого сайта - просто поствил свои значения.
Можно в этот файл что-то добавить, чтобы оно уже заработало??)) гуглю - и простых конструкций не вижу: то есть без всяуих валидаций незаполненных полей и т.д.

Спустя 2 минуты, 2 секунды (11.03.2012 - 04:29) aryumin написал(а):
нельзя ограничитьсЯ только этой строкой:
$query="INSERT INTO address_book (first_name,last_name,phone_number) VALUES ('$_POST[first_name]','$_POST[last_name]','$_POST[phone_number]')";
просто ставив свои переменные???? ну и название таблицы соответственно...

Спустя 7 минут, 11 секунд (11.03.2012 - 04:36) aryumin написал(а):
попробовал сменить код файла обработчика на вот это:

<?
/* Этот скрипт получает переменные из request.html */

/* Некоторые переменные */

$hostname = "yayar.ru";
$username = "логин";
$password = "пароль.";
$dbName = "бд";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "anketa";

/* email администратора */
$adminaddress = "почта";

/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");

@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");


/* Вставить информацию о клиенте в таблицу */
$query="INSERT INTO table(name,surname,stupid) VALUES ('$_POST[name]','$_POST[surname]','$_POST[stupid]')";

$result = MYSQL_QUERY($query);

PRINT "Информация о вас занесена в базу данных.";

/* Закрыть соединение */
MYSQL_CLOSE();
?>

не помогло - в бд просто новая пустая строка...

Спустя 2 минуты, 39 секунд (11.03.2012 - 04:39) Bodich написал(а):
Почитай про метод POST слишком долго все с нуля расказать придется тебе потратить пару часиков прогугли это дело ничего сложного там нет !!!

Спустя 3 минуты, 40 секунд (11.03.2012 - 04:43) Bodich написал(а):
$query="INSERT INTO `anketa`(name,surname,stupid) VALUES ('$_POST[name]','$_POST[surname]','$_POST[stupid]')";

Спустя 4 минуты, 42 секунды (11.03.2012 - 04:47) aryumin написал(а):
погуглю... как бы всё успеть... собственно через день надо иметь готовую анкету и запускать в поле (она только в html сделана (с бд разумеется никаких проблем - это не трудно сделать)
А намекни хотя бы - где ошибка-то??))) а то вот я как раз нагуглил такой вариант - и он не работает редиска такой((((((((((((((((((((((( как бы не нагуглить ещё что-то левое...

Спустя 3 минуты, 24 секунды (11.03.2012 - 04:51) Bodich написал(а):
* Таблица MySQL, в которой хранятся данные */
$userstable = "anketa";

Спустя 1 минута, 11 секунд (11.03.2012 - 04:52) aryumin написал(а):
ой!!! заработало... спасибо за:

$query="INSERT INTO `anketa`(name,surname,stupid) VALUES ('$_POST[name]','$_POST[surname]','$_POST[stupid]')";

Я в шоке просто))))))))
Спасибо огромное!!!!!!!!!!!!!!! ты не представляешь, как мне помог!!!)) smile.gif

Надеюсь сработает это всё и на основной БОЛЬШОЙ анкетке... Там 104 вопроса
А количество вопросов не станет проблемой для использования этого кода???)))

Спустя 1 минута, 38 секунд (11.03.2012 - 04:54) aryumin написал(а):
уже близится 6 утра, но после твоего решения, спать резко расхотелось))) надо заниматься делом в таком случае))))))))))))))))))))))))))
Здесь нет никаких подводных камней в таком решени???

Спустя 4 минуты, 40 секунд (11.03.2012 - 04:58) Bodich написал(а):
Спасибо в +карму )) приятной работы!!!

Спустя 1 минута, 16 секунд (11.03.2012 - 05:00) aryumin написал(а):
Резко появился ещё вопрос (извини за назойливость)
У меня в БД отображаются вместо ответов знаки вопроса ???????????
а вот с этим как быть?? только на латинице нормально отображаются ответы...
Все файлики в UTF-8
поля в таблице тоже в этой кодировке

Спустя 1 минута, 1 секунда (11.03.2012 - 05:01) aryumin написал(а):
хоть 100 плюсов в карму)) мне пишут что у меня меньше 10 постов и поэтому не могу поднять карму тебе)) пост это тема или сообщене в теме??)))

Спустя 4 минуты, 13 секунд (11.03.2012 - 05:05) Bodich написал(а):
сообщение, та ладно, не трудно, мне самому здесь иногда конкретно помогают )))

Спустя 41 секунда (11.03.2012 - 05:05) aryumin написал(а):
у самой таблицы в phpmyadmin стоит кодировка svwdish какой-то - не могу найти никак как её смеить - у полей сменил, а у таблицы не получатся... Засада... по любому из-за этого кодировка не правильно работает... sad.gif

Спустя 3 минуты, 23 секунды (11.03.2012 - 05:09) aryumin написал(а):
спасибо, как будет достаточно сообщений - обязательно ткну плюсик))
Получилось сменить и у таблицы кодировку - но вся равно краказямбуры... Засада за засадой)))
не подскажешь, в чём проблема может быть???)))

Спустя 9 минут, 42 секунды (11.03.2012 - 05:19) Bodich написал(а):
подскажу ! поставь в таблице сравнение UTF 8 gentral_ci поищи так кажется,
потом открываешь свой файл notepad++ -> кодировка файла ставишь UTF 8
потом в обработчике своем сверху вставь строку
header("Content-Type: text/html;charset=utf-8");
и еще после коннекта с базой вставляешь

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8_general_ci'" );

по кодировкам на форуме есть отдельная тема почитай на досуге !!!)

Спустя 7 минут, 50 секунд (11.03.2012 - 05:26) aryumin написал(а):
спасибо)) но я, наверное не туда вставляю, поэтому результат не сменился. Вот так надо вставлять???

header("Content-Type: text/html;charset=utf-8");
<?
/* Этот скрипт получает переменные из request.html */

/* Некоторые переменные */

$hostname = "yayar.ru";
$username = "логин";
$password = "пароль.";
$dbName = "бд";


/* Таблица MySQL, в которой хранятся данные */
$userstable = "anketa";

/* email администратора */
$adminaddress = "почта";

/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8_general_ci'" );

@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");


/* Вставить информацию о клиенте в таблицу */
$query="INSERT INTO `anketa`(name,surname,stupid) VALUES ('$_POST[name]','$_POST[surname]','$_POST[stupid]')";

$result = MYSQL_QUERY($query);

PRINT "Информация о вас занесена в базу данных.";

/* Закрыть соединение */
MYSQL_CLOSE();
?>


А ещё я сохраняю в простом блокноте в кодировке utf-8 - так тоже можно???

Спустя 16 минут, 32 секунды (11.03.2012 - 05:43) Игорь_Vasinsky написал(а):
Цитата
А ещё я сохраняю в простом блокноте


user posted image

Спустя 8 минут, 11 секунд (11.03.2012 - 05:51) aryumin написал(а):
сохранил в notepad++
ничего не изменилось...

Спустя 9 минут, 13 секунд (11.03.2012 - 06:00) Игорь_Vasinsky написал(а):
так, ешё раз - ты работаешь в какой кодировке? файлы (форма, обработчик) в какой кодировке сохранены? в phpMyAdmin к полям какая кодировка указана?

Спустя 6 минут, 38 секунд (11.03.2012 - 06:07) aryumin написал(а):
ты знаешь... наверное я что-то не сохранил или что-то ещё - решил привязать к другой таблице отправку данных - русские буквы стали отображаться))
Жаль у другой таблице почему-то не присоединилась отправка данных, зато кодировка поменялась))) бррррррррр... загадки просто снова пошли...))
ещё раз спасибо))) надеюсь теперь будет работать...
Теперь надо в виде html кода это дело (уже большую анкетку) всё вставить на страничку джумлы... надеюсь там работать будет))))

Спустя 1 минута, 5 секунд (11.03.2012 - 06:08) Игорь_Vasinsky написал(а):
нуу.... удач.

Спустя 12 часов, 41 минута, 12 секунд (11.03.2012 - 18:49) aryumin написал(а):
Вроде бы всё сделал smile.gif Перенс на джумлу страничку - протестировал на первых трёх вопросах анкеты - всё работало. (то есть в исполнительном файле только первые три вопрос-поля в бд - были прописаны). Добавил остальные вопросы и ничегошеньки не работает sad.gif То есть ответ системы правильный - типа данные занесены, но толку 0 - в БД ничего не появляется...
Если не трудно - подскажите, пожалуйста, где может быть косяк?? У меня есть 2 предположения - косяк может быть в значках ' или ` - заменял их отдельно, потому что были просто апострофы. Не знаю - правильный ли сейчас знак стоит... А ещё, поскольку много вопросов - в блокноте строка заканчивается и параметры переносятся на новую. Поскольку при окончании строки слово "разрывалось системой", то я используя энтр, разбил параметры так, что б слова не разрывались на части. Может нельзя просто энтером разбивать??... В общем вот кодик:

header("Content-Type: text/html;charset=utf-8");
<?
/* Этот скрипт получает переменные из request.html */

/* Некоторые переменные */

$hostname = "хост";
$username = "логин";
$password = "пароль";
$dbName = "бд";


$userstable = "nnbrand";

$adminaddress = "почта";

MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8_general_ci'" );

@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");

$query="INSERT INTO `nnbrand`(Dobrota,Sozidanie,Aristokratizm,Protivostoyzniye,Borba,Prevrashenie,Zapasnojvariant,Ljubov, Radost,Prostota,Romantika,Glubina,Komfort,Voplowenie,Bogatstvo,Stojkost,Ottorzhenie,Voshiwenie,Nadezh nost,Blizost,Shutka,Sovest,Prikljuchenija,Nastavnichestvoobuchenie,Krepost,Videnie,Sila,Geroizm,Razru sheniepregrad,Transformacija,Drug,Vzaimoponimanie,Ostroumie,Beshitrostnost,Novizna,Kompetentnost,Pred voshishaetzelaniya,Sozdaetnech,Javljaetsjapr,Zawiwaetotn,Egoprednaz,Mozhetradika,Sposobenbu,Vkachestv en,Rassmatrivae,Sposobenda,Hochetimozh,Sozdaetatmo,Imeetkritiches,Sozdaetstabil,Reshaetprob,Ispolzuet opyt,Egocennostim,Umeetsozdav,Imeetpotrebn,Stremitsjabyt,Neboitsjapok,Podegovnes,Obrazdejstvij,Delaet dobro,Delitsjaopyto,Imeetbogato,Egopodhodp,Pomogaetlju,Nehochetbyt,Imeetopytpre,Nadezhnyjdru,Vstupaja votn,Egoneprosto,Associirujutsj,Hochetbytno,Okazyvaetpo,Vsvoejdejate,Egomechtyif,Prineobhodi,Sposoben kp,Gotovkradika,Neponjatnok,Vsegdavnuzh,Zhelaetdobits,Predpochitae,Spokoentrud,Iwetinahoditp,
Sochuvstvuet,Ispytyvaetpot,Sklonenktvorchestvul,Sklonenkvysokomus,Gotovnazhert,Lomaetstere,Nahoditno vy,Nuzhdaetsja,Osobennovy,Sposobenme,Neredkovygl,Hochetzhitinte,Obladaetnadeznim,gorod,drugoemeso,ray on,vozrast,pol,kommentarii) VALUES ('$_POST[Dobrota]','$_POST[Sozidanie]','$_POST[Aristokratizm]','$_POST[Protivostoyzniye]','$_POST[Borba]','$_POST[Prevrashenie]','$_POST[Zapasnojvariant]','$_POST[Ljubov]','$_POST[Radost]','$_POST[Prostota]','$_POST[Romantika]','$_POST[Glubina],'$_POST[Komfort]','$_POST[Voplowenie]','$_POST[Bogatstvo]','$_POST[Stojkost]','$_POST[Ottorzhenie]','$_POST[Voshiwenie]','$_POST[Nadezhnost]','$_POST[Blizost]','$_POST[Shutka]','$_POST[Sovest]','$_POST[Prikljuchenija]','$_POST[Nastavnichestvoobuchenie]','$_POST[Krepost]','$_POST[Videnie]','$_POST[Sila]','$_POST[Geroizm]','$_POST[Razrusheniepregrad]','$_POST[Transformacija]','$_POST[Drug]','$_POST[Vzaimoponimanie]','$_POST[Ostroumie]','$_POST[Beshitrostnost]','$_POST[Novizna]','$_POST[Kompetentnost]','$_POST[Predvoshishaetzelaniya]',
'$_POST[Sozdaetnech]','$_POST[Javljaetsjapr]','$_POST[Zawiwaetotn]','$_POST[Egoprednaz]','$_POST[Mozhetradika]','$_POST[Sposobenbu]','$_POST[Vkachestven]','$_POST[Rassmatrivae]','$_POST[Sposobenda]','$_POST[Hochetimozh]','$_POST[Sozdaetatmo]','$_POST[Imeetkritiches]','$_POST[Sozdaetstabil]','$_POST[Reshaetprob]','$_POST[Ispolzuetopyt]','$_POST[Egocennostim]','$_POST[Umeetsozdav]','$_POST[Imeetpotrebn]','$_POST[Stremitsjabyt]','$_POST[Neboitsjapok]','$_POST[Podegovnes]','$_POST[Obrazdejstvij]','$_POST[Delaetdobro]','$_POST[Delitsjaopyto]','$_POST[Imeetbogato]','$_POST[Egopodhodp]','$_POST[Pomogaetlju]','$_POST[Nehochetbyt]','$_POST[Imeetopytpre]','$_POST[Nadezhnyjdru]','$_POST[Vstupajavotn]','$_POST[Egoneprosto]','$_POST[Associirujutsj]','$_POST[Hochetbytno]','$_POST[Okazyvaetpo]','$_POST[Vsvoejdejate]','$_POST[Egomechtyif]','$_POST[Prineobhodi]','$_POST[Sposobenkp]','$_POST[Gotovkradika]','$_POST[Neponjatnok]','$_POST[Vsegdavnuzh]','$_POST[Zhelaetdobits]','$_POST[Predpochitae]','$_POST[Spokoentrud]',
'$_POST[Iwetinahoditp]','$_POST[Sochuvstvuet]','$_POST[Ispytyvaetpot]','$_POST[Sklonenktvorchestvul]','$_POST[Sklonenkvysokomus]','$_POST[Gotovnazhert]','$_POST[Lomaetstere]','$_POST[Nahoditnovy]','$_POST[Nuzhdaetsja]','$_POST[Osobennovy]','$_POST[Sposobenme]','$_POST[Neredkovygl]','$_POST[Hochetzhitinte]','$_POST[Obladaetnadeznim]','$_POST[gorod]','$_POST[drugoemeso]','$_POST[rayon]','$_POST[vozrast]','$_POST[pol]','$_POST[kommentarii]')";

$result = MYSQL_QUERY($query);

PRINT "Спасибо за участие!";

/* Закрыть соединение */
MYSQL_CLOSE();
?>


Спасите помогите

Спустя 3 часа, 49 минут, 56 секунд (11.03.2012 - 22:39) aryumin написал(а):
Ну посоветуйте что-нибудь... Вот на другом форуме мне посоветовали код отображения ошибки вставить - получаю следующее:

header("Content-Type: text/html;charset=utf-8"); INSERT INTO `nnbrand`(Dobrota,Sozidanie,Aristokratizm,Protivostoyzniye,Borba,Prevrashenie,Zapasnojvariant,Ljubov, Radost,Prostota,Romantika,Glubina,Komfort,Voplowenie,Bogatstvo,Stojkost,Ottorzhenie,Voshiwenie,Nadezh nost,Blizost,Shutka,Sovest,Prikljuchenija,Nastavnichestvoobuchenie,Krepost,Videnie,Sila,Geroizm,Razru sheniepregrad,Transformacija,Drug,Vzaimoponimanie,Ostroumie,Beshitrostnost,Novizna,Kompetentnost,Pred voshishaetzelaniya,Sozdaetnech,Javljaetsjapr,Zawiwaetotn,Egoprednaz,Mozhetradika,Sposobenbu,Vkachestv en,Rassmatrivae,Sposobenda,Hochetimozh,Sozdaetatmo,Imeetkritiches,Sozdaetstabil,Reshaetprob,Ispolzuet opyt,Egocennostim,Umeetsozdav,Imeetpotrebn,Stremitsjabyt,Neboitsjapok,Podegovnes,Obrazdejstvij,Delaet dobro,Delitsjaopyto,Imeetbogato,Egopodhodp,Pomogaetlju,Nehochetbyt,Imeetopytpre,Nadezhnyjdru,Vstupaja votn,Egoneprosto,Associirujutsj,Hochetbytno,Okazyvaetpo,Vsvoejdejate,Egomechtyif,Prineobhodi,Sposoben kp,Gotovkradika,Neponjatnok,Vsegdavnuzh,Zhelaetdobits,Predpochitae,Spokoentrud,Iwetinahoditp, Sochuvstvuet,Ispytyvaetpot,Sklonenktvorchestvul,Sklonenkvysokomus,Gotovnazhert,Lomaetstere,Nahoditnov y,Nuzhdaetsja,Osobennovy,Sposobenme,Neredkovygl,Hochetzhitinte,Obladaetnadeznim,gorod,drugoemeso,rayo n,vozrast,pol,kommentarii) VALUES ('','','','','','','','','',& #39;','',','','','','','','',' 9;,'','','','','','','','','' ,'','','','','','','','','', '','','','','','','','','',&# 39;','','','','','','','','',' ;','','','','','','','','','& #39;,'','','','','','','','',' 9;,'','','','','','','','', '','','','','','','','','',&# 39;','','','','','','','1','', 9;','')
Неверный запрос: 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 '1','','','')' at line 2

Спустя 4 минуты, 31 секунда (11.03.2012 - 22:44) aryumin написал(а):
ну как я понимаю - ошибка везде. Может быть надо переменные выделят каким-то другим значком?? то есть не ' а что-то другое??? Ещё что-то вроде апострофа есть (тлько на клаве что-то у себя не виду такого значка) вот такого ` (им выделено название таблицы, в которую вставляются данные)

Спустя 19 минут, 29 секунд (11.03.2012 - 23:03) aryumin написал(а):
подсказали на другом форуме - в коде пропустил одинарную кавычку...))) всё работет теперь biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.