Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запрос к MySQL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как правильно оформить запрос?
shatun64
Отправлено: 07 Января, 2013 - 19:38:34
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Как правильно оформить запрос
"SELECT id_posts, posts, author FROM board LIMIT $start, $size_page" ?

На сайте вылезает : MySQL ERROR: 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 ' 3' at line 1
 
 Top
broshurkaplus
Отправлено: 07 Января, 2013 - 20:03:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




пишет - синтаксическая ошибка.
проверьте все еще раз...
и ещё раз...

а вообще ваш запрос по идее отбирает требуемые записи начиная со $start в количестве $size_page штук
быть может нет записи со значением $start или нет самого значения переменной $start
 
 Top
Саныч
Отправлено: 07 Января, 2013 - 21:41:09
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Смотрите что у вас в $start и $size_page


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
shatun64
Отправлено: 08 Января, 2013 - 06:43:20
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




broshurkaplus пишет:
пишет - синтаксическая ошибка.
проверьте все еще раз...
и ещё раз...

а вообще ваш запрос по идее отбирает требуемые записи начиная со $start в количестве $size_page штук
быть может нет записи со значением $start или нет самого значения переменной $start


Вот подробно
<?php
include ("db.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="css/index.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
</head>
<body>


<?php
$q = mysql_query("SELECT COUNT(*) FROM `board`");//узнаём количество записей
$size_page = 3;//Число записей на странице
$q_pages = ceil($q / $size_page);//Число страниц
if ($page > $q_pages) $page = $q_pages;
$start = ($page - 1) * $size_page; // Начальная позиция, для запроса к БД
//достаем все имена.
$res = mysql_query("SELECT id_posts, posts, author FROM board LIMIT $start, $size_page") or die('MySQL ERROR: '.mysql_error());
//Количество имен
$num = mysql_num_rows($res);
// число столбцов
// начальный тег <table>
$table = '<table>';
for ($i=0;$i<$num;$i+=$cols)
{
//тег строки <tr>
$table .= '<tr>';
for ($e=0;$e<$cols;$e++)
{
$id = $i + $e;
$table .= '<td>';
$table .= '<b>';
$table .= ($id<$num)?mysql_result($res,$id,'id_posts'):'&nbsp;';
$table .= '</b>';
$table .= '<br>';
$table .= ($id<$num)?mysql_result($res,$id,'posts'):'&nbsp;';
$table .= '<br>';
$table .= '<em>';
$table .= ($id<$num)?mysql_result($res,$id,'author'):'&nbsp;';
$table .= '</em>';
$table .= '<br>';
$table .= '</td>';
}
//закрывающий тег строки </tr>
$table .= '</tr>';
}
// закрывающий тег </table>
$table .= '<table>';

echo $table;
?>
</body>
</html>;
 
 Top
broshurkaplus
Отправлено: 08 Января, 2013 - 10:21:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




из того что заметил у вас $page не объявлена, а в расчете используется...
может:
1000картинок надо по 20 на страницу

CODE (htmlphp):
скопировать код в буфер обмена
  1. $r_sum_oboi=mysql_num_rows(mysql_query("SELECT `id` FROM `oboi`"));//(илиSELECT COUNT(*))
  2. //-----тут по 20 картинок на страницу
  3. $item_per_page=20;
  4. $vsego_page=$r_sum_oboi/$item_per_page;
  5. if($vsego_page-intval($vsego_page)>0){$vsego_page=intval($vsego_page)+1;}// (или ceil)
  6. //-----ищем начальный номер для выборки
  7. $start_otbor=$_GET["page"];
  8. $start_number=$start_otbor*$item_per_page-$item_per_page;
  9. //пусть входим на стр 5, тогда 5*20-20=начинаем с 80записи, тк считаем с0
  10. далее запрос с
  11.  
  12. LIMIT $start_number, $item_per_page


у вас надо 3записи на страницу
считаете число страниц
и если $page ??? больше чем число страниц -походу и скобки надо{$page = $q_pages; }

$page не принимает никакого значения.

(Отредактировано автором: 08 Января, 2013 - 10:24:28)

 
 Top
shatun64
Отправлено: 09 Января, 2013 - 06:30:26
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




broshurkaplus пишет:
из того что заметил у вас $page не объявлена, а в расчете используется...
$page не принимает никакого значения.

Всё работает!!!
В учебнике прочитал, что в ПХП не обязательно специально объявлять переменные, но всё же добавил конструкцию
$page =$_GET["page"]; после $q_pages = ceil($q / $size_page);//Число страниц.
Добавил также скобки {}. Теперь есть разбиение на страницы и на колонки.
Вы мне реально помогли Превосходно .Огромное спасибо.

(Отредактировано автором: 09 Января, 2013 - 17:39:23)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB