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
Форумы портала PHP.SU :: Версия для печати :: Запрос к MySQL
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Запрос к MySQL

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

1. shatun64 - 07 Января, 2013 - 19:38:34 - перейти к сообщению
Как правильно оформить запрос
"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
2. broshurkaplus - 07 Января, 2013 - 20:03:55 - перейти к сообщению
пишет - синтаксическая ошибка.
проверьте все еще раз...
и ещё раз...

а вообще ваш запрос по идее отбирает требуемые записи начиная со $start в количестве $size_page штук
быть может нет записи со значением $start или нет самого значения переменной $start
3. Саныч - 07 Января, 2013 - 21:41:09 - перейти к сообщению
Смотрите что у вас в $start и $size_page
4. shatun64 - 08 Января, 2013 - 06:43:20 - перейти к сообщению
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>;
5. broshurkaplus - 08 Января, 2013 - 10:21:58 - перейти к сообщению
из того что заметил у вас $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 не принимает никакого значения.
6. shatun64 - 09 Января, 2013 - 06:30:26 - перейти к сообщению
broshurkaplus пишет:
из того что заметил у вас $page не объявлена, а в расчете используется...
$page не принимает никакого значения.

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

 

Powered by ExBB FM 1.0 RC1