|
 840 байт |
|
| не получается занести автора в базу данных
имеется файл newauthor.html - где мы вводим того автора которого хотим занести в базу данных(Mysql) и имеется файл insert_author.php который заносит в базу данных того автора которого мы ввели в файле newauthor.html. Проблема в том что у меня о не заносит в базу данных и выдает : Не все данные введены.
Пожалуйста, вернитесь назад и закончите ввод - хотя данные вводила.
-----------------------------------------------------------------------
newauthor.html
-----------------------------------------------------------------------
<html>
<head>
<head>
<title>Форма ввода нового автора</title>
</head>
<body>
<h1>Форма ввода нового автора</h1>
<form action="insert_author.php" method="post">
<table border="0">
<tr>
<td>Имя</td>
<td><input type="text" name="author_name" maxlength="50" size="50"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Добаить автора"></td>
</tr>
</table>
</form>
</body>
</html>
-------------------------------------------------------------
insert_author.php
-------------------------------------------------------------
html>
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Could not connect: " . mysql_error());
print ("Connected successfully");
mysql_close($link);
?>
<head>
<title>Программа добавления новых книг (файл insert_book.php)</title>
</head>
<body>
<?php
if (!$author_name)
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$author_name = trim ( $author_name );
$author_name = addslashes ( $author_name );
$db = "books";
$link = mysql_pconnect();
if ( !$link ) die ("Невозможно подключение к MySQL");
mysql_select_db ( $db ) or die ("Невозможно открыть $db");
$query = "INSERT INTO author VALUES ('$author_name')";
$result = mysql_query ( $query );
if ($result) echo "Книга добавлена в базу данных.";
mysql_close ( $link );
?>
</body>
</html> | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 19:32)
| |
не определена переменная $author_name
ps. проблема в том, что Вы изучаете язык по устаревшим учебникам. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 19:56)
| | я брала пример с интернета а так у меня книга 2006 года издания...
я еще новичёк в етом..... яесть другой вариант как это можно сделать??? | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:01)
| |
<?php
if (empty($_POST['author_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$author_name = $_POST['author_name'];
$author_name = trim ( $author_name );
|
| |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:11)
| | Или, если сервер поддерживает глобальные переменные, то так:
<?php
global $author_name;
if (!isset($author_name))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$author_name = trim ( $author_name );
|
| |
|
|
|
|
|
|
|
для: vml
(18.04.2009 в 20:20)
| | Считайте, что сервер их не поддерживает. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:11)
| | он всё равно не работает..... :( | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:22)
| | что пишет? | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:23)
| | html> Connected successfully Невозможно подключение к MySQL | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:22)
| | да, и еще выкиньте строку $link = mysql_pconnect();
и первую из строк mysql_close($link); | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:25)
| | теперь пишет что html> Connected successfully Невозможно открыть books | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:26)
| | html>
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Could not connect: " . mysql_error());
print ("Connected successfully");
mysql_close($link);
?>
<head>
<title>Программа добавления новых книг (файл insert_book.php)</title>
</head>
<body>
<?php
if (empty($_POST['author_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$author_name = $_POST['author_name'];
$author_name = trim ( $author_name );
$author_name = addslashes ( $author_name );
$db = "books";
if ( !$link ) die ("Невозможно подключение к MySQL");
mysql_select_db ( $db ) or die ("Невозможно открыть $db");
$query = "INSERT INTO author VALUES ('".$author_name."')";
$result = mysql_query ( $query );
if ($result) echo "Книга добавлена в базу данных.";
mysql_close ( $link );
?>
</body>
</html> | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:26)
| | выкиньте строку $link = mysql_pconnect();
и первую из строк mysql_close($link); | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:27)
| | html> Connected successfully Невозможно открыть books | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:29)
| | так а база данных books создана?
Тег <html> в первой строке наверное стоит поправить. Эстетики ради. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:33)
| | да база данных создана и в ней есть таблица author, в которой есть поле author_name | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:35)
| | показывайте еще раз содержимое insert_author.php
если БД создана и эккаунт root имеет права на работу с этой базой ( а он обычно имеет полные права вообще) , то скрипт должен идти дальше. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:42)
| | html>
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Could not connect: " . mysql_error());
print ("Connected successfully");
mysql_close($link);
?>
<head>
<title>Программа добавления новых книг (файл insert_book.php)</title>
</head>
<body>
<?php
if (empty($_POST['author_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$author_name = $_POST['author_name'];
$author_name = trim ( $author_name ); $author_name = addslashes ( $author_name );
$db = "books";
if ( !$link ) die ("Невозможно подключение к MySQL");
mysql_select_db ( $db ) or die ("Невозможно открыть $db");
$query = "INSERT INTO author VALUES ('".$author_name."')";
$result = mysql_query ( $query );
if ($result) echo "Книга добавлена в базу данных.";
?>
</body>
</html> | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:44)
| | шестая строка файла. mysql_close($link);
Я сказал - убрать. Вы оставили.
PS. Код в сообщениях нужно окружать псевдотегами [code] .... [/co de] | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:45)
| | я убрала и всё рано он не работает
html> Connected successfully но никуда ничего не добавляет | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 20:50)
| | он не всё равно не работает.
Он работает, при чем каждый раз по мере исправления ошибок доходит при выполнении все дальше и дальше. Этот процесс называется "отладка ошибок".
кто ж виноват, что Вы выбрали такой грязный код?
следующую строку ( в конце) нужно дописать:
if ($result) echo "Книга добавлена в базу данных.";
else echo "Ошибка при выполнении запроса <br>$query<br>". mysql_error();
|
| |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:54)
| | html> Connected successfully Ошибка при выполнении запроса
INSERT INTO author VALUES ('Krilov')
Column count doesn't match value count at row 1 | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 21:08)
| | что именно непонятно? | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 21:12)
| | тоесть он считывает что нужно занести в БД но не может найти это поле куда внести??? | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 21:18)
| | число столбиков ( в таблице) не совпадает с числом указанных в списке оператора значений.
сервер не может выполнить такой оператор INSERT. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 21:25)
| | у меня в табличке author есть "authorid" ( int unsigned not null auto_increment primary key) и "author_name" (char(60) not null) | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 21:28)
| | А значение только одно - 'Krilov'
Или authorid должен заполняться автоинкрементом?
тогда нужно было указать конкретный столбик в запросе. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 21:30)
| | у меня в табличке author есть "authorid" ( int unsigned not null auto_increment primary key) и "author_name" (char(60) not null) | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 21:32)
| | значит и оператор должен выглядеть как
$query = "INSERT INTO author (author_name) VALUES ('".$author_name."')";
|
| |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 21:33)
| | Как Вас отблагодарить прямо я и не знаю, за то, что Вы так долго мне помогали........ спасибо Вам теперь все работает :) Супер | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 21:33)
| | Вопросик на засыпку: со скольки до скольки можно задавать вопросы чтобы получить ответы??? тоесть задавать можно круглосуточно а вот в какое время вы здесь? ;) | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 21:46)
| | засыпали. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 21:48)
| | я что то не так спросила?? | |
|
|
|
|
|
|
|
для: jelenad
(18.04.2009 в 21:50)
| | Это форум.
Сюда любой человек когда угодно может прийти, чтобы спросить.
И точно также любой человек когда угодно может прийти, чтобы ответить на чей угодно вопрос.
Если Вам требуются персональные консультации - могу дать номер аськи.
Но это будет уже не помощь, как говорится, а техподдержка. | |
|
|
|
|
|
|
|
для: Trianon
(18.04.2009 в 20:45)
| |
html>
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Could not connect: " . mysql_error());
print ("Connected successfully");
?>
<head>
<title>Программа добавления новых книг (файл insert_book.php)</title>
</head>
<body>
<?php
if (empty($_POST['author_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$author_name = $_POST['author_name'];
$author_name = trim ( $author_name ); $author_name = addslashes ( $author_name );
$db = "books";
if ( !$link ) die ("Невозможно подключение к MySQL");
mysql_select_db ( $db ) or die ("Невозможно открыть $db");
$query = "INSERT INTO author VALUES ('".$author_name."')";
$result = mysql_query ( $query );
if ($result) echo "Книга добавлена в базу данных.";
?>
</body>
</html>
|
| |
|
|
|