Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
maksimu4
0 / 0 / 1
Регистрация: 01.10.2013
Сообщений: 17
1

pagination pdo не удается сделать

29.10.2013, 17:27. Просмотров 842. Ответов 1
Метки нет (Все метки)

вылетает ошибка 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);

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?
//$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;
}
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2013, 17:27
Ответы с готовыми решениями:

PDO не получается сделать выборку из MySQL
Не так давно изучаю ООП и PDO пишу класс для соединения с базой. Ошибки не...

Как сделать вывод данных с условием из MS SQL Server 2005 через PDO?
Привет всем, Столкнулся с такой проблемой. Нужно вывести данные из базы с...

pagination
&lt;?php class Pager { // Link templates protected $link_tag = '&lt;a...

Php pagination
Ребятки, привет. :curtsy: Посмотрела на pagination-ru логику пагинации через...

Вывод Pagination на PHP
Помогите, пожалуйста! Очень срочно требуется изменить вывод Pagination на PHP,...

1
HWOARANG
33 / 33 / 9
Регистрация: 26.07.2013
Сообщений: 148
30.10.2013, 19:20 2
Стесняюсь спросить, а как ты догадался присвоить $where=NULL ?
Одно дело просто инициализировать ее и до отправки гарантировано поменять, но если нет критериев то вместо WHERE так и будет стоят NULL. Если проблема не в этом тогда
PHP
1
$query = "SELECT zagolovok, zagolovok2, news_text, news_text2 FROM `news` $where ORDER BY `id` DESC LIMIT ".$begin.", ".$limit;
после этой строки поставь
PHP
1
2
var_dump($query);
die;
и посмотри какой запрос сформировался.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2013, 19:20

PDO, как сделать bindColumn используя переменные?
Всем привет, хочу сделать singleton для работы с PDO. Вот сейчас пытаюсь...

Как сделать выборку используя PDO по нескольким критериям ?
Добрый час ! подскажите пожалуйста, как сделать правильный запрос используя PDO...

MySql PDO connect как сделать подключение к базе ?
Здравствуйте. Вот нашел в интернете такую функцию для подключения к MySql ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru