[решено] Сохранение данных в MySQL через php

Ответить
Аватара пользователя
FoXLee

[решено] Сохранение данных в MySQL через php

Сообщение FoXLee »

Здравствуйте уважаемые камрады, вот уже замучался задачку решать, сразу скажу, что я новичок, только недавно поднял апач, mysql, php и не получается заставить данные пересылаться в базу данных через веб-интерфейс.



Код: Выделить всё

<HTML>
<HEAD>
<TITLE>Добавление вакансий</TITLE>
</HEAD>
<BODY>
<H1>Добавление записей в список вакансии</H1>
<FORM METHOD="post" ACTION="add_vac.php">
<P><STRONG>Номер вакансии :</STRONG><BR>
<INPUT TYPE="text" NAME="vac_id" SIZE=5 MAXLENGHT=5></p>
<P><STRONG>Должность :</STRONG><BR>
<INPUT TYPE="text" NAME="vac_name" SIZE=100 MAXLENGTH=150</p>
<P><STRONG>Возраст :</STRONG><BR>
<INPUT TYPE="text" NAME="age" SIZE=20 MAXLENGTH=100</p>
<P><STRONG>Образование :</STRONG><BR>
<INPUT TYPE="text" NAME="formation" SIZE=100 MAXLENGTH=150</p>
<P><STRONG>Опыт работы :</STRONG><BR>
<INPUT TYPE="text" NAME="exp" SIZE=100 MAXLENGTH=150</p>
<P><STRONG>Обязанности :</STRONG><BR>
<TEXTAREA NAME="duties" COLS=50 ROWS=3 WRAP=virtual></TEXTAREA></p>
<P><STRONG>Условия :</STRONG><BR>
<TEXTAREA NAME="conditions" COLS=50 ROWS=3 WRAP=virtual></TEXTAREA></p>
<P><STRONG>Контакты :</STRONG><BR>
<INPUT TYPE="text" NAME="contacts" SIZE=100 MAXLENGTH=150</p>
<P><STRONG>Дата добавления вакансии (ГГГГ-ММ-ДД) :</STRONG><BR>
<INPUT TYPE="text" NAME="date" SIZE=10 MAXLENGTH=10</p>
<P><INPUT TYPE="SUBMIT" NAME="submit" VALUE="Добавить"></P>
</FORM>
</BODY>
</HTML>
Аватара пользователя
engwar

Re: [решено] Сохранение данных в MySQL через php

Сообщение engwar »

Цитата FoXLee:



if ((!$vac_id) || (!$vac_name) || (!$conditions) || (!$contacts) || (!$date))
[решено] Сохранение данных в MySQL через php




замени на if ((!$_POST['vac_id']) || (!$_POST['vac_name']) || (!$_POST['conditions']) || (!$_POST['contacts']) || (!$_POST['date']))




Цитата FoXLee:



(\"$vac_id\", \"$vac_name\",\"$age\",\"$formation\",\"$exp\",\"$duties\",\"$conditions\",\"$contacts\", \"$date\")";
[решено] Сохранение данных в MySQL через php




В базе все поля типа Varchar?
Аватара пользователя
FoXLee

Re: [решено] Сохранение данных в MySQL через php

Сообщение FoXLee »

Господи, так спешил, что забыл главное.. Ошибку выдает - Невозможно выполнить запрос, т.е. ошибка в блоке $sql.



Спасибо, завтра попробую. Как-то на "exxit" не обратил внимания, столько вариантов других пробовал.




Цитата engwar:



В базе все поля типа Varchar?

-------
[решено] Сохранение данных в MySQL через php




нет, пару varchar, 1 поле дата, и там где textarea - поля text.
Аватара пользователя
timon4ik

Re: [решено] Сохранение данных в MySQL через php

Сообщение timon4ik »

FoXLee,

перед строчкой



PHP код:

Код: Выделить всё

$result = mysql_query ($sql, $connection) 






проверьте правильность запроса:



PHP код:

Код: Выделить всё

echo $sql; 



Аватара пользователя
FoXLee

Re: [решено] Сохранение данных в MySQL через php

Сообщение FoXLee »

Цитата timon4ik:



проверьте правильность запроса:

PHP код:
[решено] Сохранение данных в MySQL через php




Выдает:

INSERT INTO vacancies (vac_id, vac_name, age, formation, exp, duties, conditions, contacts, date) VALUES ("4343", "43434343","43434343","43434343","43434343","4343","434343434343","4343", "43434343")Невозможно выполнить запрос.





43- это я вбивал в поля.
Аватара пользователя
FoXLee

Re: [решено] Сохранение данных в MySQL через php

Сообщение FoXLee »

Переделал исходя из этой
MySQL - [решено] сохранение данных в базе данных Mysql
:



Код:

Код: Выделить всё

<?
if ((!$vac_id) || (!$vac_name) || (!$conditions) || (!$contacts) || (!$date)) {
header("Location: http://localhost/add_vac.html");
exit;
}
if (isset($_POST['submit'])) {
$db = mysql_connect("localhost", "root", "qwerty");
$table_name = 'vacancies';
mysql_select_db("GoDB", $db);
$vac_id = mysql_real_escape_string($_POST['vac_id']);
$vac_name = mysql_real_escape_string($_POST['vac_name']);
$age = mysql_real_escape_string($_POST['age']);
$formation = mysql_real_escape_string($_POST['formation']);
$exp = mysql_real_escape_string($_POST['exp']);
$duties = mysql_real_escape_string($_POST['duties']);
$conditions = mysql_real_escape_string($_POST['conditions']);
$contacts = mysql_real_escape_string($_POST['contacts']);
$date = mysql_real_escape_string($_POST['date']);
$sql = "insert into vacancies VALUES ('$vac_id', '$vac_name', '$age', '$formation', '$exp', '$duties', '$conditions', '$contacts', '$date')";
$result = mysql_query ($sql);
echo "Thx u.\n";
} else
?>
<HTML>
<HEAD>
<TITLE>Добавление вакансии</TITLE>
</HEAD>
<BODY>
<H1>Добавление записей в <? echo "$table_name"; ?></H1>
<p><STRONG>Номер вакансии: </STRONG><BR>
<? echo "$vac_id"; ?></p>
<p><STRONG>Должность: </STRONG><BR>
<? echo "$vac_name"; ?></p>
<p><STRONG>Возраст: </STRONG><BR>
<? echo "$age"; ?></p>
<p><STRONG>Образование: </STRONG><BR>
<? echo "$formation"; ?></p>
<p><STRONG>Опыт работы: </STRONG><BR>
<? echo "$exp"; ?></p>
<p><STRONG>Обязанности: </ STRONG><BR>
<? echo stripslashes ($duties); ?></p>
<p><STRONG>Условия: </ STRONG><BR>
<? echo stripslashes ($conditions); ?></p>
<p><STRONG>Контакты: </STRONG><BR>
<? echo "$contacts"; ?></p>
<p><STRONG>Дата добавления вакансии: </STRONG><BR>
<? echo "$date"; ?></p>
<p><a href="add_vac.html">Добавить ещё одну вакансию</a></p>
</BODY>
</HTML>

Ошибок нет, но в БД не добавляется (смотрел через phpmyadmin) БД mysql и phpmyadmin принимают данные, а вот нужная никак не хочет.
Аватара пользователя
engwar

Re: [решено] Сохранение данных в MySQL через php

Сообщение engwar »

Цитата FoXLee:



$result = mysql_query ($sql, $connection) or die ("Невозможно выполнить запрос.");
[решено] Сохранение данных в MySQL через php




замени на



PHP код:

Код: Выделить всё

$result = mysql_query ($sql, $connection) or die (mysql_errno() . ": " . mysql_error()); 









Цитата FoXLee:



Ошибок нет, но в БД не добавляется
[решено] Сохранение данных в MySQL через php




Не факт что ошибок нет, просто может сообщение о них не выдается.
Аватара пользователя
FoXLee

Re: [решено] Сохранение данных в MySQL через php

Сообщение FoXLee »

engwar, Заработало, спасибо!

После замены этого куска кода выдало:

1292: Incorrect date value: '42424' for column 'date' at row 1



Заполнил поле "Дата" правильно - добавилось в таблицу. Я и до этого писал дату правильно но иногда просто ставил туда числа - не думал, что из-за одной колонки не добавится вся.
Ответить

Вернуться в «Вебмастеру»