Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/89: Рейтинг темы: голосов - 89, средняя оценка - 4.82
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208

Создание новостной ленты на php и Mysql, с использованием админпанели

04.12.2012, 14:47. Показов 17684. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Изначально стояла цель такая: через админменю написать три параметра новости (заглавие, автор, текст), новость записывается на Mysql и оттуда отображается на сайте.

Был взят код из сети, который представляю, помогите его запустить.

В текущем состоянии выдает ошибку: Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'Admin'@'localhost' (using password: NO) in Z:\home\candbnews\www\news\Createnews.ph p on line 10
Нет соединения, честно

Тестирую на денвере.


Код админпанели: Полностью рабочая, KOPOJI помогал исправить код, за что ему низки поклон.

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
<?php
$itog_usr = 'oleg';
$itog_pass = '12345';
$usr = isset($_POST['usr']) ? trim($_POST['usr']) : '';
$pass = isset($_POST['pass']) ? trim($_POST['pass']) : '';
 
if (($usr != '') and ($pass != '')):
    if (($usr != $itog_usr) or ($pass != $itog_pass)):
        die(" Неверное имя пользователя или пароль !!!");
    else:
        echo "";
?>
 
 
<html>
<h3> Добавление новостей </h3>
 <form action="./news/createnews.php" method="POST">
 Заголовок новости <input type="text" Size=70 name="title"><br>
 Ваше имя <input type="text" Size=50 name"user"><br>
 Текст <textarea name="newstext" cols=60 rows=6>
 </textarea>
 <br><br>
 <CENTER>
 <input type="Submit" Value="Ok">
 <input type="reset" Value=" Отчистить ">
 </CENTER>
 </form>
</html>
 
 
<?php 
    endif;
else: ?> 
        <form method='POST'>
            Login:<br>
            <input type='text' name='usr' value=''><br>
            Password:<br>
            <input type='password' name='pass' value=''><br>
            <input type='submit' value='LogIN'>
    </form>
<?php endif; ?>
Блок записи новости в БД createnews.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
 $server="localhost";
 $user="Admin";
 $pass="";
 $DB="mynews";
 $ntitle=$title;
 $ntext=$newstext;
 $nuser=$user;
 $now = date (" H : i : s d - m - Y ");
 mysql_connect($server,$user,$pass) or die(" Нет соединения, честно");
 mysql_select_db($DB);
 mysql_query("Insert INTO news(ntitle,ntext,ndate,nuser) VALUES('".addslashes($ntitle)."','".addslashes($ntext)."','".addslashes($now)."',
 '".addslashes($nuser)."')");
 mysql_close();
 echo " Новость добавлена !";
 ?>
И блок вывода информации на сайт:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
 $server="localhost";
 $user="Admin";
 $pass="";
 $DB="mynews";
 mysql_connect($server,$user,$pass) or die(" Нет коннекта !");
 mysql_select_db($DB);
 $request= "SELECT ntext, ntitle, ndate, nuser FROM news ORDER BY news_id DESC LIMIT 15";
 $result=mysql_query($request);
 while($row=mysql_fetch_array($result)){
 echo "<table align=center width=98% border=0 cellpadding=3 cellspacing=1 bgcolor=#FDFEFF>";
 echo "<tr><td bgcolor=#FFFFFF>".$row['ntitle']."&nbsp;&nbsp; Дата ".$row['ndate']."&nbsp;&nbsp; Aiaaaee ".$row['nuser']."</td></tr>";
 echo "<tr><td bgcolor=#FFFFFF>".$row['ntext']."</td></tr>";
 echo "<tr><td bgcolor=#F4F4F4>&nbsp</td></tr></table><br>";
 }
 ?>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2012, 14:47
Ответы с готовыми решениями:

Создание новостной ленты на php и Mysql
Задача: создать новость ленту, в которую можно добавлять записи и выводить их. У меня появилась проблема. При добавлении новости, в бд...

Создание новостной ленты в расширении для Opera 18
Как запихнуть первые 10 новостей сайта в расширение на HTML?

Создание базы данных с использованием MySQL и обработка на PHP
дравствуйте! Помогите пожалуйста с этим заданием.помогите пожалуйста создать.. 1. Разработать базу данных для форума. 2....

27
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
04.12.2012, 14:50
Цитата Сообщение от Oktu Посмотреть сообщение
Нет соединения, честно
Верю . А данные для доступа к БД верно прописаны? На денвере обычно такие (если вы не создавали пользователя специально для вашего сайта):
Хост: localhost
Пользователь: root
Пароль: пусто
1
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
04.12.2012, 14:58  [ТС]
после замены $user="Admin" на $user="root" новость успешно записалась, но на сайте не выводится, вот с такой ошибкой:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\candbnews\www\index.php on line 136

136 строка это следующая:

PHP
1
while($row=mysql_fetch_array($result)){
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
04.12.2012, 15:08
Oktu, смотрите выше этой строки mysql_query, там наверное SQL запрос некорректный, имена таблиц не те и прочее.
1
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
04.12.2012, 15:39  [ТС]
Дважды перепроверил, все правильно.

Я сейчас через phpmyadmin смотрю, так вот походу строки добавляются, но пустые, и id новости не присваевается, т.е. данные не записываются в БД
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.12.2012, 20:43
что выводит mysql_error() ?
PHP
1
mysql_query(....) or die(mysql_error());
1
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
05.12.2012, 07:32  [ТС]
Лучший ответ Сообщение было отмечено как решение

Решение

Помогите пожалуйста прописать параметр link_identifier для указанной Вами строчки.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.12.2012, 09:08
во первых, этот параметр не обязательный, а во вторых - что с ним помогать, я лично не понимаю
1
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
05.12.2012, 09:53  [ТС]
mysql_query or die(mysql_error()); - по вашему совету просто вставить эту строку в текст кода который выводит новость на экран?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.12.2012, 09:55
вместо точек внутри функции вставить код своего запроса

Добавлено через 40 секунд
не знаю, читали вы эту тему или нет - но советую почитать, думаю тогда такие вопросы отпадут сами Работа с БД MySQL
0
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
05.12.2012, 10:06  [ТС]
Спасибо за совет, мне понравился Ваш стиль изложения и приступлю к изучению, вопрос, а почитать про PDO у Вас нет ничего?

И нужен совет, если я новичек, мне все же следуют для начала более глубоко изучить Mysql или лучше уже изучать перспективные вещи, как вы советуете например PDO?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.12.2012, 10:12
Oktu, все таки лучше изучить mysql. Т.к. еще много где он используется, да и с mysqli, к примеру, синтаксис очень схожий, потом перейти несложно.. а про PDO, кроме как на офф сайте не видел.. как время появится, может дополню FAQ..
0
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
05.12.2012, 10:42  [ТС]
Итак, я вставил строчку
PHP
1
mysql_query("запрос") or die("ERROR: ".mysql_error());
выдало

ERROR: 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 'запрос' at line 1

Почитал по вашей таблице: нужно проверить синтаксис, я прошу помочь мне, у вас опытный глаз, если бы я видель ошибку сам бы давно ее исправил, или хотя бы подскажите где искать, толь в блоке вывода из БД или везде где связано с БЮ?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.12.2012, 11:29
ну так "запрос" - это неверный запрос - там нужно писать сам код запроса - то есть вида
SQL
1
SELECT что-то FROM откуда-то WHERE что-то=чему то
0
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
05.12.2012, 12:11  [ТС]
Хочу уточнить, если мы дописываем эту строчку чтобы знать что выводит mysql_error() то тогда SELECT что-то FROM откуда-то WHERE что-то=чему то мне к чему привязывать?

И еще проблемка с кодом, дело в том что код не делает записи в таблицу в БД, вернее добавляются строки, корректно указывается время в введенном формате, но все остальные строки пусты, и ID новости тоже не меняется и постоянно 0
0
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
08.12.2012, 23:40  [ТС]
Уважаемый KOPOJI, продолжаю долбить код под указанную тему, пожалуйста посмотрите почему не работает связка (по отдельности работает, в БД добавляет, а в связке никак не хочет)

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<h3> Добавление новостей </h3>
 <form method="POST">
 ID новости <input type="id" Size=10 name="id" ><br>
 Заголовок новости <input type="text" Size=70 name="title" ><br>
 Текст <textarea name="newstext" cols=60 rows=6 ></textarea><br>
 Дата <input type="date" Size=50 name"date" ><br>
 Автор <input type="user" Size=50 name"user" ><br>
 
 <br><br>
 <CENTER>
 <input type="Submit" Value="Ok">
 <input type="reset" Value=" Отчистить ">
 </CENTER>
 </form>
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
if(isset($_POST['id'], $_POST['title'], $_POST['newstext'],$_POST['date'],$_POST['user'])) {
$id=trim($_POST['id']);
$title=trim ($_POST['title']);
$newstext=trim ($_POST['newstext']);
$date=trim ($_POST['date']);
$user=trim ($_POST['user']);
 
$mysqli=new mysqli('localhost', 'root', '', 'mynews');
if (mysqli_connect_errno()) {
    printf("Подключение невозможно: %s\n", mysqli_connect_error());
    
    exit();
}
 
$stmt=$mysqli->prepare("INSERT INTO news VALUES (?,?,?,?,?)");
$stmt->bind_param('sssss', $newsID, $ntext, $ntitle, $ndate, $nuser);
$newsID=$id;
$ntext=$newstext;
$ntitle=$title;
$ndate=$date;
$nuser=$user;
mysqli_set_charset($mysqli, "utf8");
$stmt->execute();
 
}
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
09.12.2012, 07:34
у вас это в одном файле или в двух?
1
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
09.12.2012, 12:59  [ТС]
В одном, и честно сказать думал что это не принципиально.
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
09.12.2012, 13:03
Цитата Сообщение от Oktu Посмотреть сообщение
PHP
1
2
Дата <input type="date" Size=50 name"date" ><br> 
Автор <input type="user" Size=50 name"user" ><br>
пропущены знаки равно в аттрибутах name и аттрибуты type тоже подправьте
1
65 / 3 / 1
Регистрация: 15.08.2012
Сообщений: 208
09.12.2012, 16:57  [ТС]
Победа, теперь стало работать.

Но другой вопрос, как сделать чтобы после ввода информации через админ панель я просто оставался на админпанели, и меня не выстреливало на другой адрес?

Вот текущий, работающий код:

АдминПанель:

HTML5
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
<?php
$itog_usr = 'oleg';
$itog_pass = '12345';
$usr = isset($_POST['usr']) ? trim($_POST['usr']) : '';
$pass = isset($_POST['pass']) ? trim($_POST['pass']) : '';
 
if (($usr != '') and ($pass != '')):
    if (($usr != $itog_usr) or ($pass != $itog_pass)):
        die(" Неверное имя пользователя или пароль !!!");
    else:
        echo "";
?>
 
<html>
 
<h3> Добавление новостей </h3>
 <form action="news1.php" method="POST">
 ID новости <input type="text" Size=10 name="id" ><br>
 Заголовок новости <input type="text" Size=70 name="title" ><br>
 Текст <textarea  cols=60 rows=6 name="newstext"></textarea><br>
 Дата <input type="date" Size=50 name="date" ><br>
 Автор <input type="text" Size=50 name="user" ><br>
 
 <br><br>
 <CENTER>
 <input type="Submit" Value="Ok">
 <input type="reset" Value=" Отчистить ">
 </CENTER>
 </form>
 
</html>
 
<?php 
    endif;
else: ?> 
        <form method='POST'>
            Login:<br>
            <input type='text' name='usr' value=''><br>
            Password:<br>
            <input type='password' name='pass' value=''><br>
            <input type='submit' value='LogIN'>
    </form>
<?php endif; ?>
файл news1.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
<?
if(isset($_POST['id'], $_POST['title'], $_POST['newstext'],$_POST['date'],$_POST['user'])) {
$id=trim($_POST['id']);
$title=trim ($_POST['title']);
$newstext=trim ($_POST['newstext']);
$date=trim ($_POST['date']);
$user=trim ($_POST['user']);
$mysqli=new mysqli('localhost', 'root', '', 'mynews');
if (mysqli_connect_errno()) {
    printf("Подключение невозможно: %s\n", mysqli_connect_error());
    exit();
}
$stmt=$mysqli->prepare("INSERT INTO news VALUES (?,?,?,?,?)");
$stmt->bind_param('sssss', $newsID, $ntext, $ntitle, $ndate, $nuser);
$newsID="$id";
$ntext="$newstext";
$ntitle="$title";
$ndate="$date";
$nuser="$user";
mysqli_set_charset($mysqli, "utf8");
$stmt->execute();
}
?>
и код для вывода информации, очень черновой вариант:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$link=mysqli_connect ('localhost', 'root', '', 'mynews');
if(mysqli_connect_errno()) die('Ошибка соединения: '.mysqli_connect_error());
mysqli_set_charset($link, "utf8");
$res = $link->query("SELECT ntitle,ntext FROM news LIMIT 5");
if($res) { //если успешный
while($row = $res->fetch_assoc()) {
echo $row['ntitle'], '<br /> <br />';
echo $row['ntext'], '<br /> <br />';
}
$res->close(); //очищаем занятую память - она уже не нужна
}
$link->close();
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.12.2012, 16:57
Помогаю со студенческими работами здесь

Создание базы данных с использованием MySQL и обработка на языке PHP
Здравствуйте! Помогите пожалуйста с этим заданием

Написание новостной ленты
Хочется написать небольшое приложение вроде того же стандартного &quot;Новости&quot; из Windows 8. Вопрос не по коду, по реализации... Как работают...

Кеширование Новостной ленты
Доброго времени суток! Есть приложение на Swift суть которого заключается в том, что приложение тянет по API новостные ресурсы (отсюда:...

Продвижения новостной ленты
Недавно задался вопросом а как двигать в поисковиках новостные ленты? ключевые слова меняются ежечасно, потому что меняются актуальные...

Индексация новостной ленты
На сайте имеется новостная лента, в которой отображаются заголовки новостей и первые абзацы текста. При нажатии на ссылку открывается...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru