Diskuze: PDO
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Nezakládal jsi i včera něco takového? Máš autoloader? Případně vkládáš soubor databaze.php někam do indexu před souborem head.php (kde bys měl mít třídu Head)?
Máš vůbec něco v té databázi?? Voláš někde ty funkce title, nadpis a text?
Projdi si tutoriály PHP a Databáze v PHP, které tu jsou.
Volám, v databázi všechno mám, tutoriály jsem si prošel a divím se, že to nefunguje, protože by to fungovat mělo.
No a co bude v té proměnné $id, kterou máš v každé té medodě, odkud se tam vůbec dostane nějaká hodnota?
Zkus přidat na začátek indexu
ini_set('display_errors', '1');
V index.php mám:
<?php
ini_set('display_errors', '1');
$id = "index";
require_once 'databaze.php';
require_once 'head.php';
$head = new Head($id);
$head->doctype();
?>
<html>
<head>
<?php $head->charset();
$head->css();?>
<title><?php $head->title();?></title>
</head>
<body>
<h1><?php $head->nadpis(); ?></h1>
<p><?php $head->text(); ?></p>
</body>
</html>
Ten ini_set() nic nezměnil.
Pokud předáš ID objektu $head, pak v těch metodách nepoužívej
proměnnou $id (ta by byla jen pro danou metodu), ale $this->id.
Předpokládám, že máš v konstruktoru třídy Head takový kód:
class Head
{
private $id;
public function __construct($id)
{
$this->id = $id;
}
...
}
A doporučuji nepřipojovat se k databázi v souboru Databaze.php, ale někde v indexu.
public function nadpis()
{
$vysledek = Databaze::queryOne('
SELECT *
FROM stranky
WHERE id=?
', array($id)); // co je v této proměnné $id?
// nechtěl jsi spíš $this->id (proměnnou instance)?
echo $vysledek['nadpis'];
}
pak ještě
function __construct($id) {
$this->id = $id;
}
Parametry se nepředávají v array. Chlape, přesně kvůli lidem jako ty jsem ten NERS psal, mohl by sis ten tutoriál alespoň udělat, potom bys tohle nenapsal. Má to jen 4 díly, to určitě zvládneš.
BTW posílat heslo na fórum není dobrý nápad.
Zobrazeno 9 zpráv z 9.