|
|
|
| Есть фаил kniga.html -добавление новой книги
<html>
<head>
<title>Новая книга</title>
</head>
<body>
<h1 align="center">Новая книга</h1>
<form action="insert_kniga.php" method="post">
<table align="center" border="0" bgcolor="#CCCCCC">
<tr>
<td>Название книги:</td>
<td><input type="text" name="title" maxlength="70" size="50"></td>
</tr>
<tr>
<td>Цена:</td>
<td><input type="text" name="price" maxlength="6" size="10"></td>
</tr>
<tr>
<td>Краткое описание:</td>
<td><input type="text" name="description" maxlength="400" size="50" ></td></tr>
<tr>
<td>Издательство:</td>
<td><input type="text" name="publisher_id" maxlength="400" size="50" ></td></tr>
<tr>
<td>язык:</td>
<td><input type="text" name="language_id" maxlength="400" size="50" ></td></tr>
<tr>
<td>подраздел:</td>
<td><input type="text" name="subsection_id" maxlength="400" size="50" ></td></tr>
<tr>
<td>Avtor:</td>
<td><input type="text" name="author_id" maxlength="400" size="50" ></td></tr>
<tr>
<td>Логотип</td>
<td><input type="file" name="image" size="50"></td>
</tr>
</table>
<br>
<center> <input type="reset" value="Очистить">
<input type="submit" value="Добавить"></center>
</form>
</body>
</html>
|
и файл insert_kniga.php
html>
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Невозможно подключение к MySQL: " . mysql_error());
print ("Connected successfully <br>");
?>
<head>
<title>Программа добавления нового автора(файл insert_kniga.php)</title>
</head>
<body>
<?php
$title = $_POST['title'];
$price = $_POST['price'];
$description = $_POST['description'];
$image= $_POST['image'];
$publisher_id= $_POST['publisher_id'];
$language_id= $_POST['language_id'];
$subsection_id= $_POST['subsection_id'];
$author_id = $_POST['author_id'];
$title = trim ( $title );
$price = trim ( $price );
$description = trim ( $description );
$image = trim ( $image );
$publisher_id= trim ( $publisher_id );
$language_id= trim ( $language_id );
$subsection_id= trim ( $subsection_id );
$author_id = trim ($author_id );
$title = addslashes ( $title );
$price = addslashes ( $price );
$description = addslashes ( $description );
$image = addslashes ( $image );
$publisher_id= addslashes ( $publisher_id );
$language_id= addslashes ( $language_id );
$subsection_id= addslashes ( $subsection_id );
$author_id = addslashes ($author_id );
$db = "book";
mysql_select_db ( $db ) or die ("Невозможно открыть $db");
$query = "INSERT INTO kniga (title,price,description,image,publisher_id,language_id,subsection_id,author_id)
VALUES ('".$title."','".$price."','".$description."','".$image."','".publisher_id."','".language_id."','".subsection_id."','".author_id."')";
$result = mysql_query ( $query );
if ($result) echo "Книга добавлена в базу данных.";
else echo "Ошибка при выполнении запроса <br>$query<br>". mysql_error();
?>
</body>
</html>
|
после ввода данных выдаётся ошибка:
html> Connected successfully
Ошибка при выполнении запроса
INSERT INTO kniga (title,price,description,image,publisher_id,language_id,subsection_id,author_id) VALUES ('sdvfd','2.6','ergerg','3.bmp','publisher_id','language_id','subsection_id','author_id')
Incorrect integer value: 'publisher_id' for column 'publisher_id' at row 1
|
| |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 14:02)
| | >Incorrect integer value: 'publisher_id' for column 'publisher_id' at row 1
А у вас там не целое число, а текст... | |
|
|
|
|
|
|
|
для: Zend72
(03.05.2009 в 14:11)
| | но я то ввожу число а не название ,
вроде бы он должен заносить в publisher_id число которое я ввожу и которое соответствует publisher_id из таблицы publisher | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 14:17)
| | publisher_id замените на $publisher_id
language_id замените на $language_id
subsection_id замените $subsection_id
author_id замените $subsection_id
PS
Используйте редактор с подсветкой синтаксиса. | |
|
|
|
|
|
|
|
для: Zend72
(03.05.2009 в 14:19)
| | а как правильно написать чтобы он вводил те значения которые я хочу ввести??? | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 14:24)
| |
<?php
$query = "INSERT INTO kniga (title,price,description,image,publisher_id,language_id,subsection_id,author_id)
VALUES ('".$title."','".$price."','".$description."','".$image."','".$publisher_id."','".$language_id."','".$subsection_id."','".$author_id."')";
?>
|
| |
|
|
|
|
|
|
|
для: Zend72
(03.05.2009 в 14:26)
| |
html> Connected successfully
Ошибка при выполнении запроса
INSERT INTO kniga (title,price,description,image,publisher_id,language_id,subsection_id,author_id) VALUES ('сорока болобока','3.70','нету','3.bmp','4','1','1','5')
Incorrect string value: '\xF1\xEE\xF0\xEE\xEA\xE0...' for column 'title' at row 1
|
| |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 14:34)
| | Возможно с кодировкой что то не то...
Что выведет:
<?php
echo "\xF1\xEE\xF0\xEE\xEA\xE0";
?>
|
А если оставить title пустым запрос проходит? | |
|
|
|
|
|
|
|
для: Zend72
(03.05.2009 в 14:43)
| | да я уже поняла.....и исправила теперь работает
а как сделать теперь чтобы при просмотре данных таблицы "KNIGA" вмето author_id показывало бы author_name соответствующее тому author_id который вводила при добавлении новой книги?? | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 14:48)
| | >да я уже поняла.....и исправила теперь работает
>а как сделать теперь чтобы при просмотре данных таблицы "KNIGA"
> вмето author_id показывало бы author_name соответствующее тому author_id
>который вводила при добавлении новой книги??
SELECT author_name FROM KNIGA WHERE author_id=$author_id
|
| |
|
|
|
|
|
|
|
для: Zend72
(03.05.2009 в 14:53)
| | извини не так объяснила:
у меня есть таблица "KNIGA"
CREATE TABLE `kniga` (
`kniga_id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` char(70) NOT NULL,
`price` float(4,2) NOT NULL,
`description` text,
`image` blob,
`author_id` int(10) unsigned NOT NULL,
`publisher_id` int(10) unsigned NOT NULL,
`language_id` int(10) unsigned NOT NULL,
`subsection_id` int(10) unsigned NOT NULL,
);
|
и есть таблица
CREATE TABLE `author` (
`author_id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`author_name` char(50) NOT NULL,
);
|
Вначале я ввела в таблица "author" несколько авторов
затем при ввобе новой книги в БД я ввожу в поле author_id тот номер автора под которым он в таблице "author"
Ну вот теперь я и дошла до самого вопроса:
как сделать так чтобы в таблице "KNIGA"
где author_id был бы не номер а он бы автоматически выводил author_name соответсвующий номеру автора. | |
|
|
|
|
|
|
|
для: Zend72
(03.05.2009 в 14:53)
| | или так нельзя сделать?? | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 17:45)
| |
SELECT k.title, k.price, a.author_name
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
|
| |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 18:13)
| | спасибо Вам,
а если несколько записей так делать то через запятую???
SELECT k.title, k.price, a.author_name,s.section_name
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id,
section s ON k.section_id=s.section_id;
|
или так нельзя??? | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 18:33)
| | только перед очередным компонентом табличного выражения (перед section s ) должна быть не запятая , а очередной LEFT JOIN | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 18:46)
| |
SELECT k.title, k.price, a.author_name,s.section_name
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN section s ON k.section_id=s.section_id;
|
ОШИБКА:
#1054 - Unknown column 'k.section_id' in 'on clause'
|
| |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 21:24)
| | > #1054 - Unknown column 'k.section_id' in 'on clause'
Судя по тексту (03.05.2009 в 15:09) в CREATE TABLE kniga действительно нет k.section_id.
Что непонятно-то? | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 21:29)
| | извиняюсь,
не понятно то что у меня в таблице kniga есть и subsection_id ,непонимаю почему он говорит что ошибка в синтаксе???
SELECT k.title, k.price, a.author_name,s.subsection_name
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id;
|
#1064 - 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 'LEFT JOIN author a ON k.author_id=a.author_id LEFT JOIN subsection s ON k.sub' at line 2
| [ | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 21:46)
| | Не видя структуры (оператора CREATE TABLE ) таблицы subsection ( кстати, Вы уверены, что она у Вас называется именно так?) сложно что-то сказать.
Вероятно, s.subsection_name серверу сильно не понравилось.
По-моему, Вы слегка запутались в именах таблиц и полей.
Стыкуемые поля в таблицах вовсе не обязаны называться одинаково.
Но в запросе, понятное дело, для каждой таблицы нужно указывать те поля , которые в ней присутствуют.
Независимо от того, по алиасу (по сокращенному имени) идет выборка или по полному. | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 22:00)
| |
CREATE TABLE `kniga` (
`kniga_id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` char(70) NOT NULL,
`price` float(4,2) NOT NULL,
`description` text,
`image` blob,
`author_id` int(10) unsigned NOT NULL,
`publisher_id` int(10) unsigned NOT NULL,
`language_id` int(10) unsigned NOT NULL,
`subsection_id` int(10) unsigned NOT NULL);
|
CREATE TABLE `subsection` (
`subsection_id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`subsection_name` char(80) NOT NULL,
`section_id` int(10) unsigned DEFAULT NULL);
|
вот есть таблицы с этими данными | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 22:06)
| | так... а куда из запроса делась вторая строка?
| |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 22:14)
| | упс....... виновата сама не внимательная, спасибо. | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 22:14)
| |
<head>
<title>Вывод данных из MySQL</title>
</head>
<body>
<h1>Вывод ранее сохраненных данных из таблицы MySQL</h1>
<table border="1" width="30%">
<?php
// Соединяемся с базой данных
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя
$password = "qwerty"; // пароль пользователя
$dbName = "book"; // название базы данных
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
$sql = "SELECT k.title, k.price, a.author_name,s.subsection_name,l.literature_language\n"
. "FROM kniga k\n"
. " LEFT JOIN author a ON k.author_id=a.author_id\n"
. " LEFT JOIN subsection s ON k.subsection_id=s.subsection_id\n"
. " LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30 ";
$res = mysql_query($query) or die(mysql_error());
mysql_close();
?>
</table>
</body>
</html>
|
А если я задаю этот запрос в ПХП код то он пишет что запрос пустой
Вывод ранее сохраненных данных из таблицы MySQL
Query was empty
|
| |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 22:38)
| | Ну если присваивать запрос переменной $sql , а на выполнение совать переменную $query, то так примерно и выйдет.
Если бы Вы включили диагностику всех ошибок - проблема бы вскрылась куда раньше. | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 22:38)
| | И еще. Вы крайне скрупулезно оформили выражение строки с запросом, и это безусловно, делает Вам честь.
С другой стороны, напиши Вы проще, вот так:
<?
$sql = "
SELECT k.title, k.price, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id
LIMIT 0, 30
";
|
... то запрос бы тоже был воспринят адекватно. | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:02)
| |
<head>
<title>Вывод данных из MySQL</title>
</head>
<body>
<h1>Вывод ранее сохраненных данных из таблицы MySQL</h1>
<table border="1" width="30%">
<?php
error_reporting(E_ALL);
// Соединяемся с базой данных
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя
$password = "qwerty"; // пароль пользователя
$dbName = "book"; // название базы данных
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
$sql = "
SELECT k.title, k.price, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
mysql_close();
?>
</table>
</body>
</html>
|
Итог: на экран ничего не выводится вообсше ничего | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:10)
| |
$res = mysql_query($sql) or die(mysql_error());
|
так вывода-то нет!
полученный Вами $res нужно еще вычерпать функцией mysql_fetch_assoc()
если очень грубо, то:
while($row = mysql_fetch_assoc($res))
{
print_r($row);
echo '<br>';
}
|
на самом деле, конечно , нужно разрисовать все эти <tr> и <td> и т.п. | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:13)
| |
<table border="1" width="30%">
<?php
error_reporting(E_ALL);
// Соединяемся с базой данных
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя
$password = "qwerty"; // пароль пользователя
$dbName = "book"; // название базы данных
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
mysql_query("SET CHARACTER SET 'cp1251'");
$sql = "
SELECT k.title, k.price, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
echo " <tr> ";
echo " <td>".$row['price']."</td>";
echo " <td>".$row['title']."</td>";
echo " <td>".$row['subsection_name']."</td>";
echo " <td>".$row['literature_language']."</td>";
echo "</tr>";
}
mysql_close();
?>
</table>
|
| |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:21)
| |
ну и таблице не хватает шапочки. | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:21)
| | И наконец, вот этот блок
<?php
// Соединяемся с базой данных
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя
$password = "qwerty"; // пароль пользователя
$dbName = "book"; // название базы данных
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
mysql_query("SET CHARACTER SET 'cp1251'");
?>
|
принято выносить в отдельный файл, подключая его через require_once('connect.php');
Чтобы
а) не набирать двадцать раз в каждом скрипте
б) чтобы не светить серверы/логины/пароли/бд | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:26)
| | в отдельный фаил??это как??? | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:28)
| |
<?php // connect.php
// Соединяемся с базой данных
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя
$password = "qwerty"; // пароль пользователя
$dbName = "book"; // название базы данных
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
unset($username); unset($password);
mysql_select_db($dbName) or die (mysql_error());
mysql_query("SET CHARACTER SET 'cp1251'");
?>
|
books.php
<table border="1" width="30%">
<?php
error_reporting(E_ALL);
require_once('connect.php'); // соединяемся с БД
$sql = "
SELECT k.title, k.price, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
и т.д.
|
| |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:31)
| | да да да уже догадалась и сделала.
а если я хочу тот же запрос сделать но к этим данным еще и выводить картинку "image"
$sql = "
SELECT k.title, k.price,k.image, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
echo " <tr> ";
echo " <td>".$row['price']."</td>";
echo " <td>".$row['title']."</td>";
echo " <td>".$row['image']."</td>"
echo " <td>".$row['subsection_name']."</td>";
echo " <td>".$row['literature_language']."</td>";
echo "</tr>\r\n";
}
| так же не правильно будет | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:35)
| | В смыле? Почему неправильно?
А что там выводится? | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:39)
| | пусто ничего не выводит вообсче
<head>
<title>Вывод данных из MySQL</title>
</head>
<body>
<h1>Вывод ранее сохраненных данных из таблицы MySQL</h1>
<table border="1" width="30%">
<?php
error_reporting(E_ALL);
require_once('connect.php'); // соединяемся с БД
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
mysql_query("SET CHARACTER SET 'cp1251'");
$sql = "
SELECT k.title, k.price,k.image, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
echo " <tr> ";
echo " <td>".$row['price']."</td>";
echo " <td>".$row['title']."</td>";
echo " <td>".$row['author_name']."</td>";
echo " <td>".$row['image']."</td>"
echo " <td>".$row['subsection_name']."</td>";
echo " <td>".$row['literature_language']."</td>";
echo "</tr>\r\n";
}
mysql_close();
?>
</table>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:44)
| | а в PMA?
может в том столбике вообще данных нет? | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:46)
| | phpmyadmin?
если нажать обзор таблицы kniga то там показывает что есть данные картинки [BLOB - 5Байт] | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:51)
| | Что значит "данные картинки" ?
Локальное имя файла?
Полный URI?
Битовый образ JPG-файла?
Ну в 5 байт ни одна картинка не полезет :))) Если хранится битовый образ.
А имя файла логичнее было бы хранить в поле varchar, а не BLOB | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:53)
| | 3.bmp | |
|
|
|
|
|
|
|
для: jelenad
(03.05.2009 в 23:57)
| | то есть имя файла.
Одна беда
Файлы типа bmp на сайтах не показываются.
В интернете применяются файлы .gif (для рисованных картинок) и .jpg (для фотоизображений)
Реже - .png . И никакие другие.
А тип поля - да, имеет смысл поменять.
Размер рисунка можете оставить таким, какой нужен на экране.
255 - длина имени, а не размер самого рисунка. | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:59)
| | я изменила рисунок- поставила другой в формате 1.jpg но не выводит не чего все равно | |
|
|
|
|
|
|
|
для: jelenad
(04.05.2009 в 00:09)
| | приводите дамп таблицы.
если я правильно понимаю что у Вас там в ней, то
echo " <td>".$row['image']."</td>"
должно прям так и выводить 3.bmp
Но повторюсь, от этого типа файлов нужно перейти на gif или jpg | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:11)
| |
INSERT INTO `kniga` (`kniga_id`, `title`, `price`, `description`, `image`, `author_id`, `publisher_id`, `language_id`, `subsection_id`) VALUES
(4, 'soroka boloboka', 2.90, 'netu', '1.jpg', 6, 3, 1, 5);
|
$sql = "
SELECT k.title, k.price,k.image, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
echo " <tr> ";
echo " <td>".$row['price']."</td>";
echo " <td>".$row['title']."</td>";
echo " <td>".$row['author_name']."</td>";
echo " <td>".$row['image']."</td>"
echo " <td>".$row['subsection_name']."</td>";
echo " <td>".$row['literature_language']."</td>";
echo "</tr>\r\n";
}
|
всё я нашла ошибку не было поставлено ; | |
|
|
|
|
|
|
|
для: jelenad
(04.05.2009 в 00:16)
| | остается поменять эту строку на
echo " <td><img src=\"" . $image_dir . $row['image'] . "\"></td>" ;
|
и добавить в начало строку
$image_dir = '/images/'; // здесь нужно будет вписать реальный путь от корня сайта к каталогу с изображениями.
|
| |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:22)
| | заменила но в итоге вместо названия 1.jpg теперь что то вроде рисунка " какбудто картинка повреждена" может размер рисунка большой???
<head>
<title>Вывод данных из MySQL</title>
</head>
<body>
<h1>Вывод ранее сохраненных данных из таблицы MySQL</h1>
<table border="1" width="30%">
<?php
error_reporting(E_ALL);
require_once('connect.php'); // соединяемся с БД
$image_dir = 'C:\web\www\1.jpg';
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
mysql_query("SET CHARACTER SET 'cp1251'");
$sql = "
SELECT k.title, k.price,k.image, a.author_name,s.subsection_name,l.literature_language
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN subsection s ON k.subsection_id=s.subsection_id
LEFT JOIN language l ON k.language_id=l.language_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
echo " <tr> ";
echo " <td>".$row['price']."</td>";
echo " <td>".$row['title']."</td>";
echo " <td><img src=\"" . $image_dir . $row['image'] . "\"></td>" ;
echo " <td>".$row['author_name']."</td>";
echo " <td>".$row['subsection_name']."</td>";
echo " <td>".$row['literature_language']."</td>";
echo "</tr>\r\n";
}
mysql_close();
?>
</table>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: jelenad
(04.05.2009 в 00:29)
| | открываем исх.код получившейся html-страницы и копируем сюда сгенерированный текст. | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:30)
| | не поняла??? | |
|
|
|
|
|
|
|
для: jelenad
(04.05.2009 в 00:34)
| | запускаете скрипт.
На любом месте открывшейся страницы с таблицей кликаете правой кнопкой мыши, выбираете пункт меню "исходный текст html-страницы" или как-то так. Зависит от браузера.
Смотрите сгенерированный html-код. | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:37)
| |
<head>
<title>Вывод данных из MySQL</title>
</head>
<body>
<h1>Вывод ранее сохраненных данных из таблицы MySQL</h1>
<table border="1" width="30%">
<tr> <td>2.90</td>
<td>soroka boloboka</td>
<td><img src="C:\web\www\1.jpg1.jpg"></td>
<td>Николай Леонов</td> <td>Детская литература</td>
<td>на русском языке</td></tr>
</table>
</body>
</html>
|
почему он выводит <td><img src[b]="C:\web\www\1.jpg1.jpg"></td>[/b] | |
|
|
|
|
|
|
|
для: jelenad
(04.05.2009 в 00:42)
| | В переменной я попросил задать URL-путь от корня документов сервера, а не windows-путь от корня файловой системы.
Должно быть написано
Если конечно c:\web\www - это корень документов.
реальный корень документов можно посмотреть выведя echo $_SERVER['DOCUMENT_ROOT']; | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:53)
| | теперь работает
благодарю за помощь | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:53)
| | Если конечно c:\web\www - это корень документов.
реальный корень документов можно посмотреть выведя echo $_SERVER['DOCUMENT_ROOT'];
выводит что корень директории c:\web\www
но
я сделала как вы сказали
и всё работает | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:53)
| | Всё работало нормально
пока я не изменила данные
когда убераю
echo " <tr> ";
echo " <td><b>".Краткое описание."</b><td>";
echo " <td>".$row['description']."</td>";
echo "</tr>";
|
работает,а когда добавляю то не работает
не могу понять где ошибка???
<head>
<title>Вывод данных из MySQL</title>
</head>
<body>
<h1>Вывод ранее сохраненных данных из таблицы MySQL</h1>
<table border="1">
<?php
error_reporting(E_ALL);
require_once('connect.php'); // соединяемся с БД
$image_dir = '/';
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
mysql_query("SET CHARACTER SET 'cp1251'");
$sql = "
SELECT k.title, k.price,k.description,k.image, a.author_name,p.publisher_name
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN publisher p ON k.publisher_id=p.publisher_id LIMIT 0, 30
";
$res = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($res))
{
echo " <tr> ";
echo " <td><b>".Цена."</b><td>";
echo " <td>".$row['price']."</td>";
echo "</tr>";
echo " <tr> ";
echo " <td><b>".Название."</b><td>";
echo " <td>".$row['title']."</td>";
echo "</tr>";
echo " <tr> ";
echo " <td><b>".Автор."</b><td>";
echo " <td>".$row['author_name']."</td>";
echo "</tr>";
echo " <tr> ";
echo " <td><b>".Издательство."</b><td>";
echo " <td>".$row['publisher_name']."</td>";
echo "</tr>";
echo " <tr> ";
echo " <td><b>".Краткое описание."</b><td>";
echo " <td>".$row['description']."</td>";
echo "</tr>";
echo " <tr > ";
echo " <td ><img src=\"" . $image_dir . $row['image'] . "\"></td>" ;
echo "</tr>";
}
mysql_close();
?>
</table>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: jelenad
(06.05.2009 в 12:04)
| | Что значит "не работает"?
Как выглядит сгенерипрованный код? | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 12:20)
| | да соединение работает | |
|
|
|
|
|
|
|
для: jelenad
(06.05.2009 в 12:21)
| | для Вас должно быть так.
error_reporting(E_ALL|E_NOTICE) ;
|
echo " <td><b>".Краткое описание."</b><td>";
|
Как понимать эту строку?
echo
" <td><b>"
.
Краткое описание
.
"</b><td>";
|
Что это за элемент такой синтаксический Краткое описание ? | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 12:25)
| | я исправила "Краткое описание" на "Описание" теперь работает | |
|
|
|
|
|
|
|
для: jelenad
(06.05.2009 в 12:29)
| | А то что вокруг кавычки необходимо ставить - это даже в голову не пришло?! | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 12:30)
| | не поняла про кавычки??? | |
|
|
|
|
|
|
|
для: jelenad
(06.05.2009 в 12:33)
| | а я не понял про это
echo " <td><b>".Краткое описание."</b><td>"; | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 12:39)
| |
echo " <td><b>".Краткое описание."</b><td>";
|
echo " <td><b>";
echo Краткое описание;
echo "</b><td>";
|
почему тэги в кавычки взяты, а слова - нет? | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 12:44)
| | а я думала что под
этим
echo " <td><b>".Краткое описание."</b><td>";
|
понимается
echo " <td><b>;
echo "Краткое описание";
echo </b><td>";
а по правилам необходимо брать в кавычки???
echo " <td><b>"."Краткое описание"."</b><td>";
|
| |
|
|
|
|
|
|
|
для: jelenad
(06.05.2009 в 13:26)
| | >а по правилам необходимо брать в кавычки???
>
echo " <td><b>"."Краткое описание"."</b><td>";
|
Необходимо.
И php указал бы Вам на явную ерунду в синтаксисе, если бы Вы разрешили полный вывод диагностики. | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 12:44)
| | а можно сделать такой запрос или это неправильно??
$sql = "
SELECT k.title, k.price, k.description,k.image, a.author_name,p.publisher_name
FROM kniga k
where language_id=1 AND subsection_id=13 AND section_id=1;
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN publisher p ON k.publisher_id=p.publisher_id LIMIT 0, 30
";
|
| |
|
|
|
|
|
|
|
для: jelenad
(06.05.2009 в 13:38)
| | where language_id=1 AND subsection_id=13 AND section_id=1
должно следовать после табличного выражения и до LIMIT .
Если language_id=1 , subsection_id=13 , section_id=1 - подусловия соединенния таблиц - они должны быть указаны в выражениях ON (для соответствующих JOIN) | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 14:02)
| |
$sql = "
SELECT k.title, k.price, k.description,k.image, a.author_name,p.publisher_name
FROM kniga k
LEFT JOIN author a ON k.author_id=a.author_id
LEFT JOIN publisher p ON k.publisher_id=p.publisher_id
where language_id=1 AND subsection_id=13 LIMIT 0, 30
";
|
вот так? | |
|
|
|
|
|
|
|
для: jelenad
(06.05.2009 в 15:07)
| | Если закрыть глаза на оформление - так. | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 15:18)
| | а если не закрывать глаза на оформление???что не правильно??? | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2009 в 12:20)
| | на экране нет ничего он пустой | |
|
|
|
|
|
|
|
для: Trianon
(04.05.2009 в 00:11)
| | а как сделать чтобы вместо 1.jpg отображалась сама картинка??? или так не делается? | |
|
|
|
|
|
|
|
для: Trianon
(03.05.2009 в 23:53)
| | тоесть мне заменить BLOB на varchar(255) и сделать размер рисунка поменьше??? | |
|
|
|