Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Divil
8 / 8 / 10
Регистрация: 11.04.2012
Сообщений: 611
1

Помощь с кодом

04.10.2013, 21:35. Просмотров 538. Ответов 6
Метки нет (Все метки)

Приветствую всех!
Вот начал ООП разбирать, и возникла проблема:
есть index.php
PHP
1
2
3
4
5
6
7
8
// Подключаем файл конфигурации
require_once './config.php';
 
// Подключаем файл конфигурации
require_once './class/news.php';
$all_articles = News::GetAll();
 
var_dump($all_articles);
и news.php
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
class News {
    // Обнуляем значения
    public $id_article = NULL;
    public $publicationDate = NULL;
    public $title = NULL;
    public $summary = NULL;
    public $content = NULL;
    public $category = NULL;
    
    public static function GetAll() {
        // Подключение к бд
        $db_connect = new PDO('mysql:host=' . DB_DSN . ';dbname=' . DB_NAME, DB_USERNAME, DB_PASSWORD);
        
        // Выносим статьи в массив
        $sql = "SELECT * FROM `articles`";
        $query = $db_connect->prepare($sql);
        $query->execute();
        
        while ($row = $query->fetch()) {
            $all_articles[] = $row;
        }
        
    }
}
почему вардамп выдает NULL? И вообще правильно у меня код написан?
Заранее благодарен за любую помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 21:35
Ответы с готовыми решениями:

Помогиту с кодом
Помогите пожалуста пишу програму и выдает такую ошыбку Warning:...

разобраться с кодом
люди добрые может кто нить написать пояснения к коду (типа это переменная, это...

Не могу разобраться с кодом
Есть скрипт сайта, очень сырой. И вот происходит такая проблема : в админке...

В браузере выводится с кодом
Есть код на php, но в браузере выходит со словами кода, помогите исправить...

Помогите разобратся с кодом.
Что нужно сюда дописать что бы этот код грамотно выдергивал то что мне нужно?...

6
webuses
10 / 5 / 0
Регистрация: 27.09.2013
Сообщений: 26
04.10.2013, 23:08 2
У вас статическая функция getAll() ни чего не возвращает, то есть вы не получите нужный вам массив.
Так же лучше в классе News задайте массив, который будет возвращаться.

Добавлено через 28 минут
Вот так примерно, только заместо массива $all_articles ваш массив из БД.
PHP
1
2
3
4
5
6
7
8
9
10
$all_articles = News::GetAll();
var_dump($all_articles);
class News {
    private static $all_articles = array();
    public static function GetAll() {
        self::$all_articles = array("1"=>"value1","2"=>"value2","3"=>"value3") ;
            return self::$all_articles;
        
    }
}
1
Divil
8 / 8 / 10
Регистрация: 11.04.2012
Сообщений: 611
05.10.2013, 14:16  [ТС] 3
че то не допер...нафига делать второй класс News в index.php, если он уже есть в news.php?
я вот изменил
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public function GetAll() {
        // Подключение к бд
        $db_connect = new PDO('mysql:host=' . DB_DSN . ';dbname=' . DB_NAME, DB_USERNAME, DB_PASSWORD);
        
        // Выносим статьи в массив
        $sql = "SELECT * FROM `articles`";
        $query = $db_connect->prepare($sql);
        $query->execute();
        $all_articles = array();
        while ($row = $query->fetch()) {
            $all_articles = $row;
        }
                if($all_articles) {
            return new News($all_articles);
        }
        
    }
вот что выводит
Bash
1
2
3
4
5
6
7
object(News)#7 (6) { 
 ["id_article"]=> NULL 
 ["publicationDate"]=> NULL 
 ["title"]=> NULL 
 ["summary"]=> NULL 
 ["content"]=> NULL 
 ["category"]=> NULL }
0
webuses
10 / 5 / 0
Регистрация: 27.09.2013
Сообщений: 26
05.10.2013, 14:45 4
Нет, нужно подключить файл require_once("news.php").
Затем заполнять массив.
PHP
1
2
3
4
5
foreach($row as $r)
{
     $all_articles[]=$r;
}
return $all_articles;
Ну вроде как то так!
0
Divil
8 / 8 / 10
Регистрация: 11.04.2012
Сообщений: 611
05.10.2013, 16:25  [ТС] 5
Цитата Сообщение от webuses Посмотреть сообщение
Нет, нужно подключить файл require_once("news.php").
он вообще-то подключен...
Цитата Сообщение от webuses Посмотреть сообщение
Затем заполнять массив.
а массив заполнять в news.php или в index.php?
0
webuses
10 / 5 / 0
Регистрация: 27.09.2013
Сообщений: 26
05.10.2013, 16:40 6
Вот так вот, если на вашем коде это делать!
index.php
PHP
1
2
3
4
5
6
7
8
// Подключаем файл конфигурации
require_once './config.php';
 
// Подключаем файл конфигурации
require_once './class/news.php';
$all_articles = News::GetAll();
 
var_dump($all_articles);
news.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class News{
private static $all_articles = array(); 
public function GetAll() {
        // Подключение к бд
        $db_connect = new PDO('mysql:host=' . DB_DSN . ';dbname=' . DB_NAME, DB_USERNAME, DB_PASSWORD);
        
        // Выносим статьи в массив
        $sql = "SELECT * FROM articles";
        $query = $db_connect->prepare($sql);
        $query->execute();
        $rows = $query->fetchAll();
        //если хотим перебором заполнить массив
        foreach ($rows as $row) {
            self::$all_articles[]= $row;
        }
        //или можно сразу 
        //self::$all_articles=$rows;
        return self::$all_articles;
    }
}
Все должно работать и не открывайте так активно доступ к переменным- это может вам навредить и почитайте о шаблоне FrontController как его можно реализовать вам это поможет!
1
KOPOJI
05.10.2013, 19:20     Помощь с кодом
  #7
0
05.10.2013, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2013, 19:20
Привет! Вот еще темы с ответами:

Подскажите с кодом, консоль ругается
День добрый, делаю страницу фотогалиреи через прогу WWB, на которой фотки...

Подскажите с кодом навигационной панельки!
Доброго времени суток. Гуру ПХП помогите!!! 3й день ломаю голову, не могу...

Помощь в компоненте
Доброго времени суток! Помогите пожалуйста поправить небольшой скрипт в...


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

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

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