Prosim o revizi kodu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prosim o revizi kodu – PHP – Fórum – Programujte.comProsim o revizi kodu – PHP – Fórum – Programujte.com

 

tribalcz0
Super člen
28. 1. 2014   #1
-
0
-

ahoj nevim co s tim mam objektovou komponentu na vypsani obsahu z db ale nejak mi to nechce vypisovat muzete mi rict zada je nekde neco spatne data se odeslou v poradku ale zpetny vytah nefunguje zde je kod 

jde predevsim o funkci writeAllContent

<?php

/**
 * Description of WriteContent
 *
 * @author Martin „ichis“ Suchodol <tribal.cz@gmail.com>
 */
class WriteContent {
    
    public function selectContentNews()
    {
        $result = Database::query('SELECT * FROM `news` WHERE `date` ORDER BY `date` DESC LIMIT 5');
        return $result;
    }
    
    private function saveContentNews($title, $text, $created,$archived)
    {
        Database::query('INSERT INTO `news` (`date`,`nick`,`title`,`text`,`created`,`archived`) VALUES (NOW(),?,?,?,?,?)', array($_SESSION['login'], $title, $text, $created ,$archived));
    }

        public function countRecords($class)
    {
        $result = $class;
        $result->rowCount();
    }
    
    public function writeAllContent($class)
    {
        $result = $class;
        $result->fetchAll();
        foreach($result as $res)
        {
           echo("<div>");
           echo("<span class=\"title\">" . $res['title'] . "</span>");
           echo("</div>");
           echo("<div>");
           echo("<span class=\"date\">" . $res['date'] . "</span>");
           echo("</div>");
           echo("<div>");
           echo("<p class=\"content\">" . $res['text'] . "</p>");
           echo("</div>");
        }
    }
    
    public function createNewsForm()
    {
        $form = new Form();
        echo("<form method=\"post\">");
        echo("<div>");
        echo("<label for=\"title\">Nick:<span class=\"small\">Vyplňte svůj nick</span></label>");
        echo(" " . $form->input('text', 'title', 'title', '', 1));
        echo("</div>");
        echo("<div>");
        echo("<label for=\"text\">Text:<span class=\"small\">Vyplňte text novinky</span></label>");
        echo("" . $form->textarea('text', 'text', '', 5, 15, 2));
        echo("</div>");
        echo("<div>");
        echo(" " . $form->button('submit', 'goNews', 'Odeslat'));
        echo("</div>");
        echo("</form>");
    }
    
    public function createNews()
    {
        if(isset($_POST['goNews']))
        {
            $result = $this->saveContentNews($_POST['title'], $_POST['text'], time(), 0);
        }
    }
}

?>

edit funkci a classu vypisuji takto 

<?php
    $w = new WriteContent();
        $w->createNewsForm();
        $w->createNews();
        $w->writeAllContent($w->selectContentNews());
?>
Nahlásit jako SPAM
IP: 178.209.131.–
peter
~ Anonymní uživatel
4014 příspěvků
29. 1. 2014   #2
-
0
-

Prozradim ti tajne finty :)

1. zapnu wamp

2. zkopiruji si tvuj kod a ulozim do souboru

3. pridam za php

@ini_set('error_reporting', E_ALL|E_STRICT);
@ini_set("display_errors", "1");
error_reporting(E_ALL|E_STRICT);

4. spustim to php

Fatal error: Class 'Form' not found in C:\wamp\www\x\x-class.php on line 50
// zakomentuji 50

Notice: Undefined variable: form in C:\wamp\www\x\x-class.php on line 54
Fatal error: Call to a member function input() on a non-object in C:\wamp\www\x\x-class.php on line 54
// zakomentuji 54, 58 a 61

Fatal error: Class 'Database' not found in C:\wamp\www\x\x-class.php on line 15
// zakomentuji 15, 16

Fatal error: Call to a member function fetchAll() on a non-object in C:\wamp\www\x\x-class.php on line 33
// zakomentuji 33, 34

Notice: Undefined variable: res in C:\wamp\www\x\x-class.php on line 37
Notice: Undefined variable: res in C:\wamp\www\x\x-class.php on line 40
Notice: Undefined variable: res in C:\wamp\www\x\x-class.php on line 43
// zakomentuji 37,40,43

Uz to nehlasi zadne chyby, vypsalo se mi

Nick:Vyplňte svůj nick
Text:Vyplňte text novinky
Takze, pokud v tech radcich, co jsem zakomentoval, nejsou chyby, tak to jinak funguje.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
KIIV
~ Moderátor
+43
God of flame
29. 1. 2014   #3
-
0
-

Nebude ti tam moci kazdej vlozit treba javascripty ci cokoliv co ti rozbije stranky?

Potom moc nechapu, co bude delat countRecords... nejsi v perlu aby se ti posledni vysledek vratil jen tak sam

Jo a pak nechapu, proc delas saskarny s $class a $result jako:

        $result = $class;
        $result->rowCount();

proc rovnou nepouzijes $class->rowCount

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
tribalcz0
Super člen
29. 1. 2014   #4
-
0
-

S OOP teprve zacinam a s pdo tez takze cas od casu delam chyby count record jsem zapomel pridat do vypisu

@PETER-> chybi ti par trid proto ti to tohle vypisuje me to funguje form se vypisuje data do db ukladaji jediny problem je s vypisem dat asi to budu muset obalit  do try-catch abych zjistil kde je chyba:-/

Edit: try-catch neodhalil vubec nic takze chyba je bud nekde v metode vypisovani a nebo mi zesilel local server na debianu

Nahlásit jako SPAM
IP: 178.209.131.–
tribalcz0
Super člen
29. 1. 2014   #5
-
0
-

ze zvedavosti jsem to nahral na ostry server ktery vim ze mam nastaveny správně a vse na něm funguje a zde mi to dělá tu samou chybu uz vazne nwm co stim

Nahlásit jako SPAM
IP: 178.209.131.–
DB
~ Anonymní uživatel
12 příspěvků
11. 2. 2014   #6
-
0
-

 Místo:

    public function writeAllContent($class)
    {
        $result = $class;
        $result->fetchAll();
        foreach($result as $res)
        {
           echo("<div>");
           echo("<span class=\"title\">" . $res['title'] . "</span>");
           echo("</div>");
           echo("<div>");
           echo("<span class=\"date\">" . $res['date'] . "</span>");
           echo("</div>");
           echo("<div>");
           echo("<p class=\"content\">" . $res['text'] . "</p>");
           echo("</div>");
        }
    }

Zkus použít tohle:

    public function writeAllContent($class)
    {
        $result = $class->fetchAll();
        foreach($result as $res)
        {
           echo("<div>");
           echo("<span class=\"title\">" . $res['title'] . "</span>");
           echo("</div>");
           echo("<div>");
           echo("<span class=\"date\">" . $res['date'] . "</span>");
           echo("</div>");
           echo("<div>");
           echo("<p class=\"content\">" . $res['text'] . "</p>");
           echo("</div>");
        }
    }
Nahlásit jako SPAM
IP: 122.129.112.–
DB
~ Anonymní uživatel
12 příspěvků
11. 2. 2014   #7
-
0
-
Nahlásit jako SPAM
IP: 122.129.112.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

Podobná vlákna

Prosim o prekompilovani kodu — založil Jirka589

Uprava kodu — založil david

Vysvětlení kódu — založil ingiraxo

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý