[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Лента новостей
amega
Добрый день! помогите пожалуста с таким вопросом как создании ленты новостей, а имменно какой алгорим ее работы связи с мускулом и тп. Дело в том что у меня нету навика пока, летом изучал php и больше всего понравилось работать с ооп.
я так понимаю для ее создание нужно создать
PHP
class newsbd {

}

class 
news extends newsbd {

}

в класе наследнеке нужно описать работу лн, а в класе-предка описать соиденения с мускулом?
но я незнаю какие нужни таблици создавать в мускуле, тоесть где будут хранится коментарии пользователей и так далее.



Спустя 23 часа, 36 минут, 22 секунды (26.10.2009 - 17:26) glock18 написал(а):
Цитата
в класе наследнеке нужно описать работу лн, а в класе-предка описать соиденения с мускулом?

можно так, можно не так.

Цитата
но я незнаю какие нужни таблици создавать в мускуле, тоесть где будут хранится коментарии пользователей и так далее.


зависит от того, какие еще будут сущности кроме новостей. если только новости, то хватит одной таблицы для них.

Спустя 32 минуты, 52 секунды (26.10.2009 - 17:59) amega написал(а):
Цитата
зависит от того, какие еще будут сущности кроме новостей. если только новости, то хватит одной таблицы для них.


на гавной страници долна быть краткая новость с заголовком, автором датой ну может и картинкой к новосте. Когда идет клик на полную то откривалась полная версии этой статьи со всеми причендалами(автором, датой, и тп), также что б зарегистрирование пользователи могли ее коментрировать.
вот как на сайте http://dle-news.ru/ что-то в этом роде

Цитата
можно так, можно не так.

а как можно еще?

Спустя 13 минут, 20 секунд (26.10.2009 - 18:12) glock18 написал(а):
Цитата
а как можно еще?

да как угодно smile.gif в общем то, предложенная архиктектура имеет место быть. а вообще все зависит от того, на каком уровне разделять логику между родителем и потомком. Ты хочешь именно на уровне доступа к базе данных, а можно наоборот - в родителе не делать привязке к базе данных, а вроде как сделать его интерфейсом для работы с любым хранилищем. а уже в потомке описать работу с базой данных с использованием этого интерфейса.

в общем, вариантом огромное количество, на самом деле.

таблицы:
1. сами новости.
2. зареганные юзеры
3. комментарии.
[4. возможно] залитые картинки. зависит от того, как именно будут картинки новостям ставиться.

Спустя 16 минут, 36 секунд (26.10.2009 - 18:29) amega написал(а):
ну у меня опиты прорамирование на php нет дак мне 1 и 2 способ сморятрятся одинаково wink.gif
а вот поля хранить лучше в асоциативном массиве или зделать отдельные переменны?
а как опредилить какие коментариии будут пренадлежать какой новости?

Спустя 10 минут, 20 секунд (26.10.2009 - 18:39) glock18 написал(а):
Цитата
а вот поля хранить лучше в асоциативном массиве или зделать отдельные переменны?


массивы удобней для этого

Цитата
а как опредилить какие коментариии будут пренадлежать какой новости?

читаем про внешние ключи. весь интернет перед тобой smile.gif

Спустя 11 минут, 58 секунд (26.10.2009 - 18:51) amega написал(а):
Цитата
читаем про внешние ключи. весь интернет перед тобой

а нету ссылки никакой почитать, а то везде по1 абзацу написано?

Спустя 11 минут, 2 секунды (26.10.2009 - 19:02) glock18 написал(а):
первые же три ссылки не "по1 абзацу":
http://www.google.com/search?client=safari...=UTF-8&oe=UTF-8



Спустя 3 часа, 13 минут, 19 секунд (26.10.2009 - 22:16) amega написал(а):
с прочитаного я так понял, что ключи связивают таблици по конкретным полям.
тоесть дамп базы будет выглядить примерно следующим образом:
SQL
CREATE TABLE coment{
com_id int AUTO_INCREMENT NOT NULL,
usr_id int NOT NULL,
news_id int not null,
message text NOT NULL,
cdate date NOT NULL,
PRIMARY KEY(com_id),
FOREIGN KEY (news_id) REFERENCES news(news_id)
ON UPDATE CASCADE
ON DELETE RESTRICT,
FOREIGN KEY (usr_id) REFERENCES users(usr_id)
ON UPDATE CASCADE
ON DELETE RESTRICT
} ENGINE=InnoDB CHARACTER SET=UTF8;
CREATE TABLE users{
usr_id int AUTO_INCREMENT NOT NULL,
/*
остальные поля талици пользователей icq,pass,avatar....
*/
PRIMARY KEY(usr_id)
}ENGINE=InnoDB CHARACTER SET=UTF8;
CREATE TABLE news{
news_id int AUTO_INCREMENT NOT NULL,
ndate date NOT NULL,
user_id int NOT NULL,
small_text text NOT NULL,
lage_text text NOT NULL,
PRIMARY KEY(news_id),
FOREIGN KEY (user_id) REFERENCES users(usr_id)
ON UPDATE CASCADE
ON DELETE RESTRICT
}ENGINE=InnoDB CHARACTER SET=UTF8;

таблица коментрариев содержит: номер самого коментария, иди пользователя который оставил этот коментарий, иди новости к которой пренадлежит коментарий,дату оставленого комента, и связаных два ключа с пользователем и номером новости.
Дальше таблица пользователей, главное что нам нужно это ид,
Ну и третья таблица новости: номер, дату, номер пользователя, краткий текст новости и полный текст новости, и ключ с номером пользователя.

Спустя 1 день, 19 часов, 44 минуты, 17 секунд (28.10.2009 - 18:00) amega написал(а):
мм а что не так пишет ошибку
SQL
Ответ MySQL:
#1064 - 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 '{
com_id int AUTO_INCREMENT NOT NULL,
usr_id int NOT NULL,
news_id int not nu' at line 1


Спустя 9 минут, 34 секунды (28.10.2009 - 18:09) glock18 написал(а):
в запросе скобки круглые надо вместо фигурных

Спустя 45 минут, 46 секунд (28.10.2009 - 18:55) amega написал(а):
glock18
спс огромное!
Во теперь начел потихоньку писать код
начел с касса новости,
PHP
class newsbd  { 

    private $table
;
    private $id;
        
    public function __construct
($id){
        /* ? */
    }
    
    public function insert
(){
        
    
}
    
    public function selest
(){
        
    
}
    
    public function update
(){
        
    
}
    
    
}



class news extends newsbd {
    
    private $id
;
    private $ndate;
    private $user_id;
    private $small_text;
    private $lage_text;
    
    public function __construct
($id=0){
        $this->id=$id;    
        $this
->ndate=getdate(d.m.Y);
    }
    
    public function setStext
($stext){
        $this->small_text=$stext;
    }
    
    public function getStext
(){
        return $this->small_text;
    }
    public function setLtext($gtext){
        $this->lage_text=$gtext;
    }
    public function getLtext(){
        return $this->lage_text;
    }
    public function getid(){
        return $This->id;  
    
}
    public function setUserid($uid){
        $this->user_id=$uid;
    }
    public function getUsersId(){
        return $this->user_id;
    }
             public function getdate(){
        return $this->ndate;
    } 
    
}


а вот как правильно иниуиализировать иди новсти и написать функции селест инсерт и апдейт?
а также начел мучать вопрос как защищится от sql-иньекций в запросах?

Спустя 17 минут, 54 секунды (28.10.2009 - 19:13) Gabriel написал(а):
Быстрый ответ:

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