NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 13 - Objektové počítadlo návštěv v PHP - Databáze

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Pavel Vosyka
Člen
Avatar
Pavel Vosyka:5.9.2013 12:26

Parádní tutoriál! Konečně tomu OOP začínám víc rozumět. Těším se na pokračování, jen tak dál.

Odpovědět
5.9.2013 12:26
"nikdy nepiš nic 2x" (updated 10 years after: "Není nic špatného na tom napsat něco 2x")
Avatar
Jan
Neregistrovaný
Avatar
Jan:2.1.2014 1:40

Šlo by to takhle?
<?php
class Databaze
{

public function __construct($hos­t,$db_name,$u­ser,$password){
$this->host=$host;
$this->db_name=$db_name;
$this->user=$user;
$this->password=$pas­sword;

$db = new PDO("mysql:hos­t=$this->host;dbname=$this->db_name", "$this->user", "$this->password");
$this->pdo=$db;

}

public function Vloz(){

$vloz = $this->pdo->prepare('INSERT INTO pristupy (ip, datum) VALUES (?, ?)');
$hodnoty = array($_SERVER['RE­MOTE_ADDR'], time());
$vloz->execute($hodnoty);
}

}

$pripoj=new Databaze("local­host","test","ro­ot","");

$pripoj->Vloz();

?>

 
Odpovědět
2.1.2014 1:40
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:2.1.2014 2:27

Vypadá to sice trošku kostrbatě, ale po drobných úpravách by to mohlo být lepší řešení, než v článku:
http://www.itnetwork.cz/dev-lighter/276

Odpovědět
2.1.2014 2:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan
Neregistrovaný
Avatar
Jan:2.1.2014 13:11

Díky za úpravy. Po odeslání komentáře mě hned napadlo udělat $host, $name atd.. jako Private a s nastavením PDO sem se nezdržoval :)

 
Odpovědět
2.1.2014 13:11
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:2.1.2014 13:18

Těch úprav tam mám víc. Všimni si líného otevírání databáze. Tohle ti umožní inicializovat databázi i v případě, že ji ve skutečnosti nebudeš potřebovat. Můžeš to tedy dát na začátek skriptu ještě před rozhodnutím, co vlastně bude dělat.

Odpovědět
2.1.2014 13:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
tommy58
Člen
Avatar
tommy58:11.2.2014 21:24

Ahoj programátoři,

předem díky moc za tento článek, hledal jsem přesně toto, jen bych měl malý problém, jsem těžkej začátečník v PHP vůbec a Mysql rovněž, ale k mé otázce. Na lokálním serveru to všechno funguje, ale když nahraju soubory na web server hlásí mi to fatální chybu: Undefined class constant 'PDO::MYSQL_AT­TR_INIT_COMMAND Databaze.php on line 30, nevěděl by někdo, kde dělám chybu?

Díky

 
Odpovědět
11.2.2014 21:24
Avatar
Dominik Čoupek:12.2.2014 16:03

Ahoj mám problém potřebuji vypsat obrázek z databáze, ale vždy mi to vypíše pouze první obrázek
Fotogalerie.php:

public function Vybergalerii()
    {
        $vysledek = Databaze::dotaz('
            SELECT  obrazek FROM `fotogalerie`
        ');
        $data = $vysledek->fetch();


        return $data['obrazek'] ;




    }
    public function Vypis()
    {

               echo   $this->Vybergalerii();


    }

a index.php:

require_once('tridy/Fotogalerie.php');
$fotogalerie = new Fotogalerie();
$fotogalerie->Vybergalerii();
$fotogalerie->Vypis();

Předem díky za odpovědi.

 
Odpovědět
12.2.2014 16:03
Avatar
Odpovídá na Dominik Čoupek
Dominik Čoupek:12.2.2014 16:04

Samozřejmě datábázový wrapper je stejný jako v článku.

 
Odpovědět
12.2.2014 16:04
Avatar
Odpovídá na Dominik Čoupek
Martin Konečný (pavelco1998):12.2.2014 16:22

Máš metodu nazvanou "vyberGalerii", která ti z DB vybere obrázek.

Pokud chceš všechny obrázky z tabulky fotogalerie, pak namísto fetch() použij fetchAll(). To ti vytvoří pole, které pak projdeš cyklem (nejjednodušeji přes foreach).

Odpovědět
12.2.2014 16:22
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 36.