Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/35: Рейтинг темы: голосов - 35, средняя оценка - 4.66
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965

Мини блог PHP + MySQL

06.01.2014, 12:38. Показов 7411. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. С наступающим Рождеством!
Как всегда я накосил фегни, сам себя запутал и теперь у меня куча вопросов. В общем перешел к созданию мини блога. Задумка такая: главная страница блога (site.ru/blog.php) отображает список блогов с их авторами, названием статьи, кратким описанием и датой создания. Нажимаем на любую статью и переходим на страницу всего текста (site.ru/blog.php?p=statia_id1). Если надо написать новую статью переходим на (site.ru/blog.php?p=new) пишем отправляем - готово, новая статья появилась в списке, на первом месте на главной блога (site.ru/blog.php). Дальше свои (только свои) статьи можно редактировать, например на странице (site.ru/blog.php?p=edin), ну или вообще удалить.
Вот так я начал:
SQL
1
2
3
4
5
6
7
8
CREATE TABLE `blog` (
`id` INT NOT NULL AUTO_INCREMENT ,
`blog_author` VARCHAR(20) NOT NULL,
`blog_date` VARCHAR(20) NOT NULL,
`blog_title` VARCHAR(256) NOT NULL,
`blog_message` VARCHAR(256) NOT NULL,
PRIMARY KEY ( `id` )
);
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
<?php
include 'system/common.php';
 
#Новая статья [Начало]
if(isset($_GET['p'])) {
    if($_GET['p'] == 'new') {
    if (!isset($_SESSION['login']) || !isset($_SESSION['id'])) {
        header("location: index.php");
    }
 
$info_blog_new = NULL;
$title = 'Написать новую статью';
$description = NULL;
$keywords = NULL;
 
try
{
 
    $user = $_SESSION['login'];
    $res = mysql_query("SELECT * FROM `user` WHERE `login` = '$user'");
    $user_data = mysql_fetch_array($res);
 
    if (isset($_POST['submit'])) {
        if (empty($_POST['blog_title'])) {
            throw new Exception("Поле: <strong>Название статьи</strong> не заполнено.");
        }
        if (empty($_POST['blog_message'])) {
            throw new Exception("Поле: <strong>Текст статьи</strong> не заполнено.");
        }
        else {              
        
            $blog_author = $user_data['login'];
            $blog_date = date("d-m-Y в H:i");
            $blog_title = $_POST['blog_title'];
            $blog_message = $_POST['blog_message'];
          
            $query = "INSERT INTO `blog` (blog_author, blog_date, blog_title, blog_message)
            VALUES ('$blog_author', '$blog_date', '$blog_title', '$blog_message')";
            $result = mysql_query($query) or die(mysql_error());
                    
            $info_blog_new = "<div class='ok'>Новая статья успешно добавлена!</div>";
        }
    }    
}
catch (Exception $info) {
    $info_blog_new = '<div class="error">' . $info->getMessage() . '</div>';
}
require_once TPL_PATH . 'blog_new.tpl';  
}
#Новая статья [Конец]
}
else {
 
 
    $res = mysql_query("SELECT * FROM `blog`");
    $user_data = mysql_fetch_array($res);
?>  
Заголовок статьи:    <b><?php echo $user_data['blog_title']; ?></b> <em>Автор: <b><?php echo $user_data['blog_author']; ?></b> создал: <?php echo $user_data['blog_date']; ?></em><br />
Статья:   <i><?php echo $user_data['blog_message']; ?></i><br />  
<?php
}
?>
HTML5
1
2
3
4
5
6
7
8
<?php include 'header.tpl'; ?>
<?php echo $info_blog_new; ?>
<form action="blog.php?p=new" method="POST">
       <input type="text" name="blog_title">
       <textarea name="blog_message"></textarea>
       <input name="submit" type="submit" value="Отправить">
</form>
<?php include 'footer.tpl'; ?>
Конечно с кода, Вы уже все поняли сами, но все же:
Статья отправляется и все данные заносятся правильно, кроме самой статьи. Вбиваем к примеру 5000 символов, а в базе не больше 100. Понятно, что надо в самой базе, что то изменить, но что?
Как сделать главную страницу со списком всех статей?
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2014, 12:38
Ответы с готовыми решениями:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\php\mysql.php on line 16
Не могу подключиться к базе...устал все перепроверять переписывать и пересоздавать... Я недавно тока занялся php начал изучать курс...

блог на php
Здраствуйте может кто нибуть посоветовать где можно скачать готовый блог на php? Зaранее спасибо.

Блог на PHP без БД
Добрый день, Нужно сделать семестральный проект в универе - блог. Виды пользователей - зарегистрированный пользователь, гость,...

12
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
06.01.2014, 14:10  [ТС]
Спасибо.
Сменил VARCHAR на TEXT, теперь влазиет много!
Теперь подскажите про список.
0
 Аватар для Dealiss
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
06.01.2014, 17:42
Цитата Сообщение от Raisin Zn Посмотреть сообщение
Теперь подскажите про список.
Изъять данные с таблицы и в цикле вывести...
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
06.01.2014, 18:32  [ТС]
Цитата Сообщение от Dealiss Посмотреть сообщение
Изъять данные с таблицы и в цикле вывести...
Вы знаете - я это знаю, я даже знаю как это сделать, но знаю только на словах...
А вот как это провернуть при помощи php ума не приложу... Я не знаю какой тут нужен код.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
06.01.2014, 19:41
Код ниже выводит
Цитата Сообщение от Raisin Zn Посмотреть сообщение
список блогов с их авторами, названием статьи, кратким описанием и датой создания
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    # Выполняем запрос в БД
    $result = mysqli_query( $ссылка_на_соединение,  "SELECT * FROM `blog`" );
    
    # Массив с блогами
    $blogs = array();
    
    # Формируем массив, который отдадим шаблону
    while( $data = mysqli_fetch_assoc( $result ) )
        # Дополняем массив
        $blogs[] = $data;
        
    # Подключаем шаблон
    require_once( 'blogs_list.tpl' );
Файл blogs_list.tpl:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<table>
    <thead>
        <td>Автор</td>
        <td>Заголовок</td>
        <td>Краткое сообщение</td>
        <td>Дата</td>       
    </thead>
    <tbody>
<?php foreach( $blogs as $blog ):?>
    <tr>
        <td><?=$blog['blog_author']?></td>
        <td><?=$blog['blog_title']?></td>
        <td><?=$blog['blog_message']?></td>
        <td><?=$blog['blog_date']?></td>
    </tr>
<?php endforeach;?>
    </tbody>
</table>
mysql_* функции не используйте, они устарели. Используйте mysqli_*
1
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
06.01.2014, 20:20  [ТС]
Ну, Вы!!! Все знаете!

А как можно сделать еще стать с адресом ID статьи и страницу на нее?

Добавлено через 5 минут
Вот еще, как можно сделать, что вверху списка была последняя статья?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
06.01.2014, 20:41
Цитата Сообщение от Raisin Zn Посмотреть сообщение
Ну, Вы!!! Все знаете!
Лишь толику .
Цитата Сообщение от Raisin Zn Посмотреть сообщение
А как можно сделать еще стать с адресом ID статьи и страницу на нее?
Точно, забыл. Вот:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<table>
    <thead>
        <td>Автор</td>
        <td>Заголовок</td>
        <td>Краткое сообщение</td>
        <td>Дата</td>       
    </thead>
    <tbody>
<?php foreach( $blogs as $blog ):?>
    <tr>
        <td><?=$blog['blog_author']?></td>
        <td>
            <a href="/blog.php?p=statia_id<?=$blog['id']?>">
                <?=$blog['blog_title']?>
            </a>
        </td>
        <td><?=$blog['blog_message']?></td>
        <td><?=$blog['blog_date']?></td>
    </tr>
<?php endforeach;?>
    </tbody>
</table>
В данном примере ссылкой будет заголовок (blog_title). Ссылки будут вида:
site.ru/blog.php?p=statia_id1
Но вам неудобно будет с ними работать, трудно будет получить ID из данной ссылки, придётся вырезать его. Я бы порекомендовал так:
PHP
1
2
3
4
5
# тут код
<a href="/blog.php?p=statia&id=<?=$blog['id']?>">
    <?=$blog['blog_title']?>
</a>
# тут код
В данном случае ссылки будут такие:
/blog.php?p=statia&id=1 и ID легко получить:
PHP
1
$_GET['id']
Цитата Сообщение от Raisin Zn Посмотреть сообщение
как можно сделать, что вверху списка была последняя статья?
Вот так запрос в базе переделайте:
PHP
1
2
# Выполняем запрос в БД
$result = mysqli_query( $ссылка_на_соединение,  "SELECT * FROM `blog` ORDER BY `blog_date` DESC" );
Добавлено через 9 минут
А на странице по адресу blog.php?p=statia&id=1 нечто подобное:
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
<?php
    if( isset( $_GET['p'] ) && $_GET['p'] == 'statia' )
    {
        try
        {
            # ID статьи из ссылки
            $id = isset( $_GET['id'] ) ? (int) $_GET['p'] : 0;
            
            # Если ID пуст
            if( !$id )
                # Исключение
                throw new Exception('Вы не указали ID статьи');
                
            # Выбираем из БД статью
            $result = mysqli_query( $ссылка_на_соединение,  "SELECT * FROM `название таблицы` WHERE `id`='$id'" );
            
            # Если статьи нет
            if( !mysqli_num_rows( $result ) )
                # Исключение
                throw new Exception('Нет такой статьи в базе');
                
            # Получаем массив из строки ресурса
            $article = mysqli_fetch_assoc( $result );
            
            # А дальше выводим
            echo 'Автор: ' . $article['поле с автором'];
            
            # и т.д. Можно шаблон подключить
        }
        catch( Exception $e )
        {
            echo $e->getMessage();
        }
    }
?>
1
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
06.01.2014, 21:21  [ТС]
Почему то постоянно выдает:
Вы не указали ID статьи
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
06.01.2014, 21:55
Ой-ой-ой. Я неправильно написал. На седьмой строке замените: $_GET['p'] на $_GET['id'].
1
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
06.01.2014, 22:06  [ТС]
Работает!

Волшебник!
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
01.02.2014, 18:56  [ТС]
Здравствуйте ещё раз!
Как ко всему, что уже сделано выше, прикрутить автоматом переход на следующею строчку, то есть при вводе текста переходим на новую строку (Enter'ом), и при просмотре статьи были везде <br /> там, где мы переходили при вводе?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.02.2014, 21:04
Raisin Zn, есть такая функция nl2br.
1
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
02.02.2014, 08:32  [ТС]
Не перестаю восхищаться Вашими знаниями! Вы Шерлок Хомс!

Сделал так:
PHP
1
$blog_message = nl2br($_POST['blog_message']);
Теперь как надо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.02.2014, 08:32
Помогаю со студенческими работами здесь

Простой блог на php
Народ, кто-нибудь может скинуть простой блог на php?

Блог на php
Помогите допилить блог. Нужно сделать, чтобы при заходе в админ панель (admin.php) была сперва форма входа для админа, а затем появляется...

Как сделать чистый блог на php для понимания его?
вордпресс не предлагать мне нужно для усвоения пхп

Мини-движок на php, для сайтов
мини-движок на php, использовать проще простого, для личного использования https://github.com/RustamKStyle/dvijok

PhP для создания мини чата
Здравствуйте, оч хорошо знаю Html и C++, вообще возникла идея создать что то типо сервер - клиент, в нете вычитал что такое возможно только...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru