PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Proka
Отправлено: 03 Апреля, 2019 - 09:32:48
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2019
Помог: 0 раз(а)
Всем привет!
Пару лет назад была такая же проблема, но похоже ТС просто забил(. Проблема, как и в старой теме та же - в файле базы данных эти самые данные есть, а вот массив, который их должен вывести почему-то пустой(
Помогите мне пожалуйста с одной проблемой.
Я сейчас учусь по видеоурокам Борисова, курс от 2016 года. Сделал все как он сказал, и ничего не получилось.А сделать надо вот что: вывести из БД SQLite данные.
В базу то они добавились, а вот вывести никак не выходит, все перепробовал(((
Вот код:
NewsDB.php
код:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
require "INewsDB.class.php" ;
class NewsDB implements INewsDB{
const DB_NAME = "../news.db" ;
const ERR_PROPERTY = "Wrong property name" ;
private $_db ;
function __construct( ) {
$this -> _db = new SQLite3( self :: DB_NAME ) ;
try{
$sql = "CREATE TABLE msgs(
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
category INTEGER,
description TEXT,
source TEXT,
datetime INTEGER)" ;
if ( $this -> _db-> exec ( $sql ) )
throw new Exception( $this -> _db-> lastErrorMsg ( ) ) ;
$sql = "CREATE TABLE category(
id INTEGER,
name TEXT)" ;
if ( $this -> _db-> exec ( $sql ) )
throw new Exception( $this -> _db-> lastErrorMsg ( ) ) ;
$sql = "INSERT INTO category(id, name)
SELECT 1 as id, 'Политика' as name
UNION SELECT 2 as id, 'Культура' as name
UNION SELECT 3 as id, 'Спорт' as name" ;
if ( $this -> _db-> exec ( $sql ) )
throw new Exception( $this -> _db-> lastErrorMsg ( ) ) ;
} catch( Exception $e ) {
//$e->getMessage();
echo "Все плохо :'(" ;
}
}
}
function __destruct( ) {
}
function __get( $name ) {
if ( $name == "db" )
return $this -> _db;
throw new Exception( "Wrong property name" ) ;
}
function __set( $name , $value ) {
throw new Exception( self :: ERR_PROPERTY ) ;
}
function saveNews( $title , $category , $description , $source ) {
$sql = "INSERT INTO msgs(title, category, description, source, datetime)
VALUES('$title ', $category , '$description ', '$source ', $dt )" ;
return $this -> _db-> exec ( $sql ) ;
}
function db2Arr( $data ) {
$arr = [ ] ;
while ( $row = $data -> fetchArray ( SQLITE3_ASSOC) )
$arr [ ] = $row ;
return $arr ;
}
function getNews( ) {
$sql = "SELECT msgs.id as id, title, category.name as category, description, source, datetime
FROM msgs, category
WHERE category.id = msgs.category
ORDER BY msgs.id DESC" ;
$res = $this -> _db-> query ( $sql ) ;
if ( ! $res ) return false ;
return $this -> db2Arr ( $res ) ;
}
function deleteNews( $id ) { }
function clearStr( $data ) {
return $this -> _db-> escapeString ( $data ) ;
}
function clearInt( $data ) {
}
}
Прикреплено изображение (Нажмите для увеличения)
Отредактировано модератором: armancho7777777, 14 Апреля, 2019 - 08:00:34
LIME
Отправлено: 03 Апреля, 2019 - 17:12:51
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
для форматирования кода есть кнопачки выше
например
чего ты один класс вывалил? покажи клиентский код(где ты его юзаешь)
Proka
Отправлено: 07 Апреля, 2019 - 11:19:34
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2019
Помог: 0 раз(а)
LIME пишет: TLDR
Proka да кому он нужен этот проект?
класс приведи нормально как выше у меня
и код куда ты var_dump() прифигачил
Класс:
Спойлер (Отобразить ) CODE (
php ):
скопировать код в буфер обмена
[PHP]<?php
require "INewsDB.class.php" ;
class NewsDB implements INewsDB{
const DB_NAME = "../news.db" ;
const ERR_PROPERTY = "Wrong property name" ;
private $_db ;
function __construct( ) {
$this -> _db = new SQLite3( self :: DB_NAME ) ;
try{
$sql = "CREATE TABLE msgs(
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
category INTEGER,
description TEXT,
source TEXT,
datetime INTEGER)" ;
if ( $this -> _db-> exec ( $sql ) )
throw new Exception( $this -> _db-> lastErrorMsg ( ) ) ;
$sql = "CREATE TABLE category(
id INTEGER,
name TEXT)" ;
if ( $this -> _db-> exec ( $sql ) )
throw new Exception( $this -> _db-> lastErrorMsg ( ) ) ;
$sql = "INSERT INTO category(id, name)
SELECT 1 as id, 'Политика' as name
UNION SELECT 2 as id, 'Культура' as name
UNION SELECT 3 as id, 'Спорт' as name" ;
if ( $this -> _db-> exec ( $sql ) )
throw new Exception( $this -> _db-> lastErrorMsg ( ) ) ;
} catch( Exception $e ) {
//$e->getMessage();
echo "Все плохо :'(" ;
}
}
}
function __destruct( ) {
}
function __get( $name ) {
if ( $name == "db" )
return $this -> _db;
throw new Exception( "Wrong property name" ) ;
}
function __set( $name , $value ) {
throw new Exception( self :: ERR_PROPERTY ) ;
}
function saveNews( $title , $category , $description , $source ) {
$sql = "INSERT INTO msgs(title, category, description, source, datetime)
VALUES('$title ', $category , '$description ', '$source ', $dt )" ;
return $this -> _db-> exec ( $sql ) ;
}
function db2Arr( $data ) {
$arr = [ ] ;
while ( $row = $data -> fetchArray ( SQLITE3_ASSOC) )
$arr [ ] = $row ;
return $arr ;
}
function getNews( ) {
$sql = "SELECT msgs.id as id, title, category.name as category, description, source, datetime
FROM msgs, category
WHERE category.id = msgs.category
ORDER BY msgs.id DESC" ;
$res = $this -> _db-> query ( $sql ) ;
if ( ! $res ) return false ;
return $this -> db2Arr ( $res ) ;
}
function deleteNews( $id ) { }
function clearStr( $data ) {
return $this -> _db-> escapeString ( $data ) ;
}
function clearInt( $data ) {
}
}
а вот файл, где var_dump():Спойлер (Отобразить ) CODE (
htmlphp ):
скопировать код в буфер обмена
<? php
require "NewsDB.class.php" ;
$news = new NewsDB( ) ;
$errMsg = "" ;
if ( $_SERVER [ "REQUEST_METHOD" ] == "POST" )
require "save_news.inc.php" ;
?> [/PHP]
<!DOCTYPE html>
< html>
< head>
< title> Новостная лента</ title>
< meta charset= "utf-8" />
</ head>
< body>
< h1> Последние новости</ h1>
[PHP]<? php
if ( $errMsg )
echo "<h3>$errMsg </h3>" ;
?>
< form action= "<?= $_SERVER ['PHP_SELF']; ?> " method="post">
Заголовок новости: < input type= "text" name= "title" /> Выберите категорию: < select name= "category" >
< option value= "1" > Политика</ option>
< option value= "2" > Культура</ option>
< option value= "3" > Спорт</ option>
</ select>
Текст новости: < textarea name= "description" cols= "50" rows= "5" ></ textarea> Источник: < input type= "text" name= "source" /> < input type= "submit" value= "Добавить!" />
</ form>
<? php
require "get_news.inc.php" ;
$posts = $news -> getNews ( ) ;
?> [/PHP]
</ body>
</ html>
Отредактировано модератором: armancho7777777, 14 Апреля, 2019 - 07:58:52
Proka
Отправлено: 12 Апреля, 2019 - 10:21:33
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2019
Помог: 0 раз(а)
LIME пишет: TLDR
Proka да кому он нужен этот проект?
класс приведи нормально как выше у меня
и код куда ты var_dump() прифигачил
ну что, не смотрел? есть мысли, где косяк?
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB