Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не получается занести автора в базу данных
 
 автор: jelenad   (18.04.2009 в 19:32)   письмо автору
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>

  Ответить  
 
 автор: Trianon   (18.04.2009 в 19:56)   письмо автору
 
   для: jelenad   (18.04.2009 в 19:32)
 

if (!$author_name)


не определена переменная $author_name


ps. проблема в том, что Вы изучаете язык по устаревшим учебникам.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:01)   письмо автору
 
   для: Trianon   (18.04.2009 в 19:56)
 

я брала пример с интернета а так у меня книга 2006 года издания...
я еще новичёк в етом..... яесть другой вариант как это можно сделать???

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:11)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:01)
 

<?php
if (empty($_POST['author_name']))
  die (
"Не все данные введены.<br>
      Пожалуйста, вернитесь назад и закончите ввод"
);
$author_name $_POST['author_name'];

$author_name trim $author_name ); 

  Ответить  
 
 автор: vml   (18.04.2009 в 20:20)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:11)
 

Или, если сервер поддерживает глобальные переменные, то так:

<?php 
global $author_name;

if (!isset(
$author_name)) 
  die (
"Не все данные введены.<br> 
      Пожалуйста, вернитесь назад и закончите ввод"
); 
$author_name trim $author_name ); 

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:22)   письмо автору
 
   для: vml   (18.04.2009 в 20:20)
 

Считайте, что сервер их не поддерживает.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:22)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:11)
 

он всё равно не работает..... :(

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:23)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:22)
 

что пишет?

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:24)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:23)
 

html> Connected successfully Невозможно подключение к MySQL

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:25)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:22)
 

да, и еще выкиньте строку $link = mysql_pconnect();
и первую из строк mysql_close($link);

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:26)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:25)
 

теперь пишет что html> Connected successfully Невозможно открыть books

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:27)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:27)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:26)
 

выкиньте строку $link = mysql_pconnect();
и первую из строк mysql_close($link);

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:29)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:27)
 

html> Connected successfully Невозможно открыть books

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:33)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:29)
 

так а база данных books создана?

Тег <html> в первой строке наверное стоит поправить. Эстетики ради.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:35)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:33)
 

да база данных создана и в ней есть таблица author, в которой есть поле author_name

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:42)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:35)
 

показывайте еще раз содержимое insert_author.php

если БД создана и эккаунт root имеет права на работу с этой базой ( а он обычно имеет полные права вообще) , то скрипт должен идти дальше.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:44)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:45)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:44)
 

шестая строка файла. mysql_close($link);
Я сказал - убрать. Вы оставили.

PS. Код в сообщениях нужно окружать псевдотегами [code] .... [/co de]

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:50)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:45)
 

я убрала и всё рано он не работает
html> Connected successfully но никуда ничего не добавляет

  Ответить  
 
 автор: Trianon   (18.04.2009 в 20:54)   письмо автору
 
   для: jelenad   (18.04.2009 в 20:50)
 

он не всё равно не работает.
Он работает, при чем каждый раз по мере исправления ошибок доходит при выполнении все дальше и дальше. Этот процесс называется "отладка ошибок".
кто ж виноват, что Вы выбрали такой грязный код?

следующую строку ( в конце) нужно дописать:

if ($result) echo "Книга добавлена в базу данных.";
else echo "Ошибка при выполнении запроса <br>$query<br>". mysql_error();

  Ответить  
 
 автор: jelenad   (18.04.2009 в 21:08)   письмо автору
 
   для: Trianon   (18.04.2009 в 20:54)
 

html> Connected successfully Ошибка при выполнении запроса
INSERT INTO author VALUES ('Krilov')
Column count doesn't match value count at row 1

  Ответить  
 
 автор: Trianon   (18.04.2009 в 21:12)   письмо автору
 
   для: jelenad   (18.04.2009 в 21:08)
 

что именно непонятно?

  Ответить  
 
 автор: jelenad   (18.04.2009 в 21:18)   письмо автору
 
   для: Trianon   (18.04.2009 в 21:12)
 

тоесть он считывает что нужно занести в БД но не может найти это поле куда внести???

  Ответить  
 
 автор: Trianon   (18.04.2009 в 21:25)   письмо автору
 
   для: jelenad   (18.04.2009 в 21:18)
 

число столбиков ( в таблице) не совпадает с числом указанных в списке оператора значений.
сервер не может выполнить такой оператор INSERT.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 21:28)   письмо автору
 
   для: Trianon   (18.04.2009 в 21:25)
 

у меня в табличке author есть "authorid" ( int unsigned not null auto_increment primary key) и "author_name" (char(60) not null)

  Ответить  
 
 автор: Trianon   (18.04.2009 в 21:30)   письмо автору
 
   для: jelenad   (18.04.2009 в 21:28)
 

А значение только одно - 'Krilov'
Или authorid должен заполняться автоинкрементом?
тогда нужно было указать конкретный столбик в запросе.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 21:32)   письмо автору
 
   для: Trianon   (18.04.2009 в 21:30)
 

у меня в табличке author есть "authorid" ( int unsigned not null auto_increment primary key) и "author_name" (char(60) not null)

  Ответить  
 
 автор: Trianon   (18.04.2009 в 21:33)   письмо автору
 
   для: jelenad   (18.04.2009 в 21:32)
 

значит и оператор должен выглядеть как
$query = "INSERT INTO author (author_name) VALUES ('".$author_name."')"; 

  Ответить  
 
 автор: jelenad   (18.04.2009 в 21:37)   письмо автору
 
   для: Trianon   (18.04.2009 в 21:33)
 

Как Вас отблагодарить прямо я и не знаю, за то, что Вы так долго мне помогали........ спасибо Вам теперь все работает :) Супер

  Ответить  
 
 автор: jelenad   (18.04.2009 в 21:46)   письмо автору
 
   для: Trianon   (18.04.2009 в 21:33)
 

Вопросик на засыпку: со скольки до скольки можно задавать вопросы чтобы получить ответы??? тоесть задавать можно круглосуточно а вот в какое время вы здесь? ;)

  Ответить  
 
 автор: Trianon   (18.04.2009 в 21:48)   письмо автору
 
   для: jelenad   (18.04.2009 в 21:46)
 

засыпали.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 21:50)   письмо автору
 
   для: Trianon   (18.04.2009 в 21:48)
 

я что то не так спросила??

  Ответить  
 
 автор: Trianon   (18.04.2009 в 22:01)   письмо автору
 
   для: jelenad   (18.04.2009 в 21:50)
 

Это форум.
Сюда любой человек когда угодно может прийти, чтобы спросить.
И точно также любой человек когда угодно может прийти, чтобы ответить на чей угодно вопрос.
Если Вам требуются персональные консультации - могу дать номер аськи.
Но это будет уже не помощь, как говорится, а техподдержка.

  Ответить  
 
 автор: jelenad   (18.04.2009 в 20:51)   письмо автору
 
   для: 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>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования