SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.06.2012 14:04:19

Times
Участник
Зарегистрирован: 07.06.2012
Сообщений: 4

Не могу решить самостоятельно, прошу совета. You have an error in your SQL syntax;

Доброго всем дня,
я новичок, и  только начинаю изучать PHP с mySQL.
Пытаюсь вывести  таблицу категории но в браузере выдает ошибку:


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 ''1''' at line 1

вот запрос:


<?php include ("blocks/bd.php");
if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
$result = mysql_query("SELECT * FROM categories WHERE id='$cat'",$db);

if (!$result)
{

echo "<p>Запрос на выборку данных из базы не прошел. Пожалуйста сообщите об этом администратору *******@yandex.ru. <br><strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result)>0)
{
$myrow = mysql_fetch_array($result);
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблие нет записей.</p>";
exit();
}
?>




 


-- phpMyAdmin SQL Dump
-- version 3.5.1

-- Хост: localhost
-- Время создания: Июн 07 2012 г., 13:41
-- Версия сервера: 5.5.21
-- Версия PHP: 5.3.10

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `phpblog`
--
--
-- Структура таблицы `categories`
--

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `meta_d` varchar(255) NOT NULL,
  `meta_k` varchar(255) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- Дамп данных таблицы `categories`
--

INSERT INTO `categories` (`id`, `title`, `meta_d`, `meta_k`, `text`) VALUES
(1, 'Kohana', 'kohana', 'kohana, фреймворк', '<p> здесь тестовый текст </p>'),
(2, 'kohana2', 'kohana', 'kohana, фреймворк', '<p> здесь тестовый текст </p>'),
(3, 'kohana3', 'kohana', 'Блог', '<p> здесь тестовый текст </p>');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;




(на данные внимания не обращайте, вставлял для тэстирования)

Неактивен

 

#2 07.06.2012 14:06:01

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу решить самостоятельно, прошу совета. You have an error in your SQL syntax;

Замените

$result = mysql_query("SELECT * FROM categories WHERE id='$cat'",$db);

if (!$result)
{

echo "<p>Запрос на выборку данных из базы не прошел. Пожалуйста сообщите об этом администратору *******@yandex.ru. <br><strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

на

$query = "SELECT * FROM categories WHERE id='$cat'";
$result = mysql_query($query,$db);

if (!$result)
{

echo "<p>Запрос " . $query . " на выборку данных из базы не прошел. Пожалуйста сообщите об этом администратору *******@yandex.ru. <br><strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

и пришлите вывод.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 07.06.2012 22:10:26

Times
Участник
Зарегистрирован: 07.06.2012
Сообщений: 4

Re: Не могу решить самостоятельно, прошу совета. You have an error in your SQL syntax;

Вот вывод:

Запрос SELECT * FROM categories WHERE id='1'' на выборку данных из базы не прошел. Пожалуйста сообщите об этом администратору *******@yandex.ru.
Код ошибки:
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 '
'1''' at line 1

Неактивен

 

#4 07.06.2012 22:11:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу решить самостоятельно, прошу совета. You have an error in your SQL syntax;

Переделайте, чтобы
SELECT * FROM categories WHERE id='1''
было заменено на
SELECT * FROM categories WHERE id=1
и должно стать гораздо лучше.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 07.06.2012 23:09:56

Times
Участник
Зарегистрирован: 07.06.2012
Сообщений: 4

Re: Не могу решить самостоятельно, прошу совета. You have an error in your SQL syntax;

Спасибо, уже лучше)
Ошибка исчезла
теперь выводиться одна категория из 3 имеющихся, т.к. id =1 во всех трех,
как здесь можно поступить?

Неактивен

 

#6 07.06.2012 23:12:00

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу решить самостоятельно, прошу совета. You have an error in your SQL syntax;

Менять стоило не на единичку, а на $cat, просто устранив лишние кавычки. Я бы так сделал:

if ( isset($_GET['cat']) ) {
  $cat = intval ( $_GET['cat'] );
}
$query = "SELECT * FROM categories WHERE id = " . $cat;
$result = mysql_query($query,$db);


Должен Вам еще заметить, что у Вас в коде не рассматривается тот случае, если $_GET['cat'] не установлен вовсе.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 08.06.2012 12:26:50

Times
Участник
Зарегистрирован: 07.06.2012
Сообщений: 4

Re: Не могу решить самостоятельно, прошу совета. You have an error in your SQL syntax;

Спасибо! теперь все работает.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson