[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: pagination pdo не работает
maksimu4

вылетает ошибка Fatal error: Call to a member function fetchAll() on a non-object in Z:\home\veterinar.com\www\pdo2.php on line 27
27 строка - $row = $result->fetchAll(PDO::FETCH_ASSOC);

 <?
//$table - имя таблицы
//$critery - критерий поиска в формате имя_поля=значение
//$limit - количество отображаемых статей на странице

function post($table, $critery = null, $limit = 2) {
// Линк подключения к БД
$pdo = new PDO('mysql:host=localhost;dbname=vetbase', 'root', '');
// Формирование критерия поиска, если критерий пуст, уточняющее WHERE не используется
$where = NULL;

if (isset($critery)) {
list($at, $vl) = explode("=", $critery);
$atribute = trim($at);
$value = trim($vl);
$where = "WHERE `$atribute` = '$value'";
}

// Отправная точка отсчета статей
$begin = isset($_GET['begin'])?intval($_GET['begin']):0;
// Основной запрос в БД
$query = "SELECT zagolovok, zagolovok2, news_text, news_text2
FROM `news`
$where
ORDER BY `id`
DESC LIMIT "
.$begin.", ".$limit;
$result = $pdo->query($query);
// Сохраняем все значения в массив
$row = $result->fetchAll(PDO::FETCH_ASSOC);
// Перебираем массив и формируем визуализацию полученных значений
if(is_array($row) ) {
foreach($row as $array) {
echo "<div id='zagolovok'><h3>", $array['zagolovok'], '</h3></div>';
echo "<div id='zagolovok2'><h3>", $array['zagolovok2'], '</h3></div>';
echo "<div id='news_text'><p>", substr($array['news_text'], 0, 400), '.....</p></div>';
echo "<div id='news_text2'>", $array['news_text2'], "<hr /></div>";
}
}

$query = "SELECT COUNT(*) as `count`
FROM `news` "
. $where;
$result = $pdo->query($query);
// Здесь мы подсчитываем сколько всего у нас статей
$count = $result->fetch(PDO::FETCH_OBJ)->count;
// Вычисляем сколько будет страниц
$pageCount = ceil($count/$limit);
$navigation = NULL;
// Формируем навигацию
for($i=0; $i<$pageCount; $i++) {
$navigation .= '<a href="index.php?begin='.($i*$limit).'">'.($i+1).'</a>';
}
echo '<div class="content">' . $navigation . '</div>';
}


//С помощью конструкции switch можно соорудить нехитрый рубрикатор:

switch ($_GET['id']) {
// Таких рубрик может быть сколь угодно
case 'PHP':
post('posts', 'category=PHP');
break;
case 'CSS':
post('posts', 'category=CSS');
break;
// Ну и дефолтовое значение вывод всех статей. Первой будет последняя опубликованная
default: post('posts');
break;
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.