[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запись в БД
Angel Flavor
Помогите пожалуйста разобраться, что я делаю не так. Скрипт не записывает данные в базу.
<!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>
page title</title>
</head>

<body>

<CENTER>

Ввод данных
<P>
<TABLE
WIDTH = 400><TR><TD align = center>
<FORM
ACTION="userdb.php" METHOD="POST">
Имя:<BR> <INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">
<P>

Фамилия:<BR> <INPUT TYPE="text" NAME="surname" SIZE="20" MAXLENGTH="30">
<P>

Отчество:<BR> <INPUT TYPE="text" NAME="patronymic" SIZE="20" MAXLENGTH="30">
<P>

Год рождения:
<SELECT NAME="year">
<OPTION
value = "1980">1980
<OPTION value = "1981">1981
<OPTION value = "1982">1982
<OPTION value = "1983">1983
<OPTION value = "1984">1984
<OPTION value = "1985">1985
<OPTION value = "1986">1986
<OPTION value = "1987">1987
<OPTION value = "1988">1988
<OPTION value = "1989">1989
<OPTION value = "1990">1990
<OPTION value = "1991">1991
<OPTION value = "1992">1992
<OPTION value = "1993">1993
<OPTION value = "1994">1994
<OPTION value = "1995">1995
<OPTION value = "1996">1996
<OPTION value = "1997">1997
<OPTION value = "1998">1998
<OPTION value = "1999">1999
<OPTION value = "2000">2000
<OPTION value = "2001">2001
<OPTION value = "2002">2002
<OPTION value = "2003">2003
<OPTION value = "2004">2004
<OPTION value = "2005">2005
<OPTION value = "2006">2006
<OPTION value = "2007">2007
<OPTION value = "2008">2008
<OPTION value = "2009">2009
<OPTION value = "2010">2010
<OPTION value = "2011">2011
<OPTION value = "2012">2012
<OPTION value = "2013">2013
<OPTION value = "2014">2014
<OPTION value = "2015">2015
</SELECT>
<P>
<INPUT
TYPE="submit" VALUE="Отправить">
</FORM>
</TD></TR></TABLE></CENTER>

</body>
</html>


<?

/* Соединяемся с БД */
$hostname = "localhost";
$username = "root";
$password = "";
$dbName = "people";

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

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

/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

echo "<CENTER>";
echo "Привет, ".$_POST['name'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Вас интересуют ".$_POST['year'].". Данные успешно добавлены: ".$_POST['surname'];
echo "</CENTER>";

/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO `members` VALUES('$name','$surname','$patronymic', '$year')";

/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
echo "Информация о вас занесена в базу данных.";

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




Спустя 10 минут, 45 секунд (10.09.2010 - 10:40) vagif написал(а):
побробуй так
$result=mysql_query($query);



Спустя 16 минут, 24 секунды (10.09.2010 - 10:57) Angel Flavor написал(а):
Почему-то записывает пустую строчку, только заголовки, а данных нет.

Спустя 6 минут, 38 секунд (10.09.2010 - 11:04) vagif написал(а):
не понял,как это?значит ошибок не выдает?
не пишет Информация о вас занесена в базу данных.?

Спустя 10 минут, 58 секунд (10.09.2010 - 11:14) Angel Flavor написал(а):
Вот что создает в базе: user posted image

сейчас концовка вот такая:
<?/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

echo "<CENTER>";
echo "Привет, ".$_POST['name'] .$_POST['surname'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Данные успешно добавлены. ";
echo "</CENTER>";

/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO `members` VALUES('$name','$surname','$patronymic', '$year')";

/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
$result=mysql_query($query) or die(mysql_error());
echo "Информация занесена в базу данных.";

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


Ошибок не пишет, пишет, что:
Привет, АлександрАлександрович

Данные успешно добавлены.
Информация занесена в базу данных.

Спустя 11 минут, 22 секунды (10.09.2010 - 11:26) vagif написал(а):
нашеЛ!!!ты же не присвои значения,вот так делай:
<?/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

echo "<CENTER>";
echo "Привет, ".$_POST['name'] .$_POST['surname'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Данные успешно добавлены. ";
echo "</CENTER>";
$name=$_POST['name'];
$surname=$_POST['surname'];
$patronymic=$_POST['patronymic'];
$year=$_POST['year'];

/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO `members` VALUES('$name','$surname','$patronymic', '$year')";

/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
$result=mysql_query($query) or die(mysql_error());
echo "Информация занесена в базу данных.";

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


Спустя 2 минуты, 53 секунды (10.09.2010 - 11:29) Angel Flavor написал(а):
Спасибо огромное! теперь все записывает smile.gif

Спустя 3 минуты, 22 секунды (10.09.2010 - 11:32) vagif написал(а):
незачто)всегда рад!

Спустя 24 минуты, 4 секунды (10.09.2010 - 11:56) Angel Flavor написал(а):
Подскажите, можно ли так организовать проверку на существование в базе Ф.И.О. человека? И как правильно вывести сообщение, в случае, если данный человек существует?

<?
//Проверка существования в базе пользователя с таким именем, фамилией и отчеством:
$result = mysql_query ('SELECT * FROM '.$table.' WHERE name="'.$_REQUEST["name"].'" AND surname="'.$_REQUEST["surname"].'" AND patronymic="'.$_REQUEST["patronymic"].'"');

//Если существует, вывести сообщение
if (mysql_num_rows ($result) != 0) ?>

Спустя 15 минут, 24 секунды (10.09.2010 - 12:12) phz написал(а):
Кстати... можно вместо:

Год рождения:
<SELECT NAME="year">
<OPTION
value = "1980">1980
<OPTION value = "1981">1981


Написать:

<?php
echo '<select name="year">';

for($year = 1980; $year <= 2015; $year++)
{
echo "<option value=\"$year\">$year";
}
echo "</select>";

?>


Удобнее и короче...

Спустя 9 часов, 49 секунд (10.09.2010 - 21:12) vagif написал(а):
вот,хороший вопрос.проверить на наличии пользователя,я недавно работал над таким скриптом.давай сейчас напишу сам,с памяти,если не получится,скопирую свой скрипт.
mysql_connect("localhost","root","");
mysql_select_db("database");//напишешь название базы
$name=$_POST['name'];
$surname=$_POST['surname'];
$patronymic=$_POST['patronymic'];
$year=$_POST['year'];
$result=mysql_query("SELECT * FROM `members` WHERE `name`='$name'") or

die (mysql_error());
while($row=mysql_fetch_array($result)){
$names[]=$row[name];
$numb=count($names);
}
if(!empty($name)){
if($numb==0){
echo "<CENTER>";
echo "Привет, ".$_POST['name'] .$_POST['surname'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Данные успешно добавлены. ";
echo "</CENTER>";


/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO `members`

VALUES('
$name','$surname','$patronymic', '$year')";

/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
$result=mysql_query($query) or die(mysql_error());
echo "Информация занесена в базу данных.";
}else{
echo "такой пользователь есть!";
}
}

это проверяет только наличие пользователя по имени.ты посмотри мой код,я не проверял на наличие ошибок.если что пиши))

Спустя 11 часов, 4 минуты, 41 секунда (11.09.2010 - 08:17) Basili4 написал(а):
Angel Flavor
хотел бы поправить немного
$name=isset($_POST['name'])?mysql_real_escape_string($_POST['name']):'';
$surname=isset($_POST['surname'])?mysql_real_escape_string($_POST['surname']):'';
$patronymic=isset($_POST['patronymic'])?mysql_real_escape_string($_POST['patronymic']):'';
$year=isset($_POST['year'])?(int)($_POST['year']):0;


А то мало ли

Спустя 2 часа, 35 минут, 12 секунд (11.09.2010 - 10:52) vagif написал(а):
Basili4,а можешь обьяснить твой код?там что,проверяет на существования переменной?

Спустя 1 день, 10 часов, 30 секунд (12.09.2010 - 20:53) Angel Flavor написал(а):
Спасибо, но все равно продолжает писать одинаковых пользователей, unsure.gif да, и проверку хотелось бы организовать не только по имени, а полностью ФИО
<?

/* Соединяемся с БД */
$hostname = "localhost";
$username = "root";
$password = "";
$dbName = "people";

/* Присваиваем значения переменным */
$name=$_POST['name'];
$surname=$_POST['surname'];
$patronymic=$_POST['patronymic'];
$year=$_POST['year'];

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

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

/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

/* Проверяем, есть ли уже такие записи в таблице */
$result=mysql_query("SELECT * FROM `members` WHERE `name`='$name'") or

die (mysql_error());
while($row=mysql_fetch_array($result)){
$names[]=$row[name];
$num=count($names);
}
if(!empty($name)){
if($numb==0){

echo "<CENTER>";
echo "Привет, ".$_POST['name'] .$_POST['surname'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Данные успешно добавлены. ";
echo "</CENTER>";

/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO `members` VALUES('$name','$surname','$patronymic', '$year')";

/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
$result=mysql_query($query) or die(mysql_error());
echo "Информация занесена в базу данных.";
}else{
echo "такой пользователь есть!";
}
}


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


С Вашим кодом(а именно коннектом к mysql и выбор бд) получается тоже самое, мне немного удобнее использовать мой код.

Спустя 1 час, 34 минуты, 38 секунд (12.09.2010 - 22:27) vagif написал(а):
то есть если имя то же самое,то пользователь добавляется?а ошибок не выдает?

Спустя 20 минут, 43 секунды (12.09.2010 - 22:48) linker написал(а):
$result = mysql_query("SELECT * FROM `members` WHERE `name`='$name'") or die (mysql_error());
if (!mysql_num_rows($result))
{
echo "Вы добавлены";
// INSERT INTO
}
else
{
echo "Такой юзверь существует";
}

Спустя 26 минут, 41 секунда (12.09.2010 - 23:15) vagif написал(а):
а что это за функция mysql_num_rows?

Спустя 28 секунд (12.09.2010 - 23:15) Lenarfate написал(а):

Спустя 24 минуты, 22 секунды (12.09.2010 - 23:40) vagif написал(а):
ты забыл вставить пользователя

Спустя 1 час, 52 минуты, 27 секунд (13.09.2010 - 01:32) inpost написал(а):
linker
MySql => Unique =))) Создал тему соседнюю, если не найду аргументы, почему не использовать, то проверку через mysql_num_rows буду считать неправильной =)

Спустя 7 часов, 59 минут, 37 секунд (13.09.2010 - 09:32) Angel Flavor написал(а):
Цитата (vagif @ 12.09.2010 - 22:27)
то есть если имя то же самое,то пользователь добавляется?а ошибок не выдает?

Именно, добавляется в таблицу новой строкой.

<?

/* Соединяемся с БД */
$hostname = "localhost";
$username = "root";
$password = "";
$dbName = "people";

/* Присваиваем значения переменным */
$name=$_POST['name'];
$surname=$_POST['surname'];
$patronymic=$_POST['patronymic'];
$year=$_POST['year'];

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

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

/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

echo "<CENTER>";
echo "Привет, ".$_POST['name'] .$_POST['surname'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Данные успешно добавлены. ";
echo "</CENTER>";

/* Проверяем, есть ли уже такие записи в таблице */


$result = mysql_query("SELECT * FROM `members` WHERE `name`='$name'") or die (mysql_error());
if (!mysql_num_rows($result))
{
echo "Вы добавлены"; // INSERT INTO

}
else
{
echo "Такой юзверь существует";
}

/* составить запрос для вставки информации о клиенте в таблицу */


/* Выполнить запрос. Если произойдет ошибка - вывести ее. */

$query = "INSERT INTO `members` VALUES('$name','$surname','$patronymic', '$year')";


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


Сейчас перестала вообще делать запрос unsure.gif

P.S. а разве (mysql_num_rows($result) == 0) не так должно быть?

Спустя 1 час, 2 минуты, 47 секунд (13.09.2010 - 10:34) linker написал(а):
mysql_num_rows($result) == 0
и
!mysql_num_rows($result)
в данном случае равнозначны.
Быстрый ответ:

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