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

Форум 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 '-9, 10
 
 автор: Angel_Hranitel   (25.06.2007 в 22:27)   письмо автору
 
 

вообщем ошибка

Ошибка - 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 '-9, 10' at line 4

не могу понять из-за чего...

   
 
 автор: Angel_Hranitel   (25.06.2007 в 22:40)   письмо автору
 
   для: Angel_Hranitel   (25.06.2007 в 22:27)
 


$start=(($page-1)*$gb_num+1);
$q="SELECT * FROM gb
              $where
              ORDER BY date_post
              LIMIT $start, $gb_num";
$query=mysql_query($q);
if (!$query)
 {
  echo "Ошибка вывода - ".mysql_error();
  include "../exit.php";
 }

срабатывает ошибка вывода

   
 
 автор: marcus   (26.06.2007 в 00:00)   письмо автору
 
   для: Angel_Hranitel   (25.06.2007 в 22:40)
 

уберите из Mysql запроса "$where" и все будет работать

   
 
 автор: Angel_Hranitel   (26.06.2007 в 01:38)   письмо автору
 
   для: marcus   (26.06.2007 в 00:00)
 

это из постраничной навигации... взят за основу пример из книги "MySQL в подленнике"...

вот что за $where

<?php
$page
=(int) $_GET["page"];
if (
$_GET["page"]!=0)
 {
     
$where="WHERE page = $_GET[page]";
 }
 else
 {
     
$where="";
 }
?>


может правельней сделать 2 условия??? что-то вроде

<?php
$page
=(int) $_GET["page"];
if (
$_GET["page"]!=0)
 {
$q="SELECT * FROM gb
              WHERE page = 
$_GET[page]
              ORDER BY date_post
              LIMIT 
$start$gb_num";
}
else
{
$q="SELECT * FROM gb
              ORDER BY date_post
              LIMIT 
$start$gb_num";
}
?>

   
 
 автор: marcus   (26.06.2007 в 19:24)   письмо автору
 
   для: Angel_Hranitel   (26.06.2007 в 01:38)
 

не, правильнее будет в первом случае. Согласен с Unkind, поставить проверку и все тип топ
т.е. в коде


<?php
if ($_GET["page"]!=0) {}
?>


заменить на


if ($_GET["page"]>0) {}

   
 
 автор: Unkind   (26.06.2007 в 01:57)   письмо автору
 
   для: Angel_Hranitel   (25.06.2007 в 22:40)
 

Так как, вероятно, $pаge == 0, то
$pаge - 1 == 0 - 1.
Далее идет очевидно умножение на положительное число "10". А это -10.
Ну и +1.
В итоге $start - отрицательное число.
LIMIT работает только с неотрицательными целыми числами.

   
 
 автор: Angel_Hranitel   (26.06.2007 в 07:21)   письмо автору
 
   для: Unkind   (26.06.2007 в 01:57)
 

Хм... Логично... А если взять модуль? Можно? Как?

   
 
 автор: Unkind   (26.06.2007 в 12:47)   письмо автору
 
   для: Angel_Hranitel   (26.06.2007 в 07:21)
 

Я так понимаю данный код расчитан на то, что $page может быть >= 1.


<?php
$page 
= isset($_GET["page"]) ? (int) $_GET["page"] : 1;
if(
$page 1$page 1;
?>

   
 
 автор: Angel_Hranitel   (26.06.2007 в 14:57)   письмо автору
 
   для: Unkind   (26.06.2007 в 12:47)
 

Это получается в книге ошибка?

   
 
 автор: Unkind   (26.06.2007 в 15:36)   письмо автору
 
   для: Angel_Hranitel   (26.06.2007 в 14:57)
 

Я не знаю, у меня нет такой книги.

   
Rambler's Top100
вверх

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