NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Automatické načítání změny v proměnných vyhodí chybu při čtení databáze

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

Aktivity
Avatar
lukas.sei
Člen
Avatar
lukas.sei:14.2.2016 10:30

Čaute,
Mám problém. :D
Mám index.php v kterém je DIV. Já do toho DIVu každých 5 sekund nahrávám hodnotu z databáze.
kód:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Hra</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    </head>
    <body>
        <div id="zivot">
            <?php include_once 'CteniDatabaze/Db_load.php'; ?>
        </div>
        <script type='text/javascript'>
      var table = $('#zivot');
     // refresh every 5 seconds
     var refresher = setInterval(function(){
       table.load("CteniDatabaze/Db_load.php");
     }, 5000);
     setTimeout(function() {
       clearInterval(refresher);
     }, 1800000);
     </script>
            </body>
</html>

Při prvním načtení vše funguje jak má. A proměnné se normálně zobrazí, ale při druhém přenačtení mi vyskočí chyba
"Fatal error: Call to undefined method DB::queryOne() in C:\xampp\htdoc­s\JednoduchaH­ra\CteniDataba­ze\Db_load.php on line 5"
Kód souboru Db_load.php:

<?php
require_once('Db.php');
Db::connect('127.0.0.1', 'uzivatele', 'root', '');

$JmenoArray = Db::queryOne('
        SELECT jmeno
        FROM hra');
$ZivotArray = Db::queryOne('
        SELECT zivot
        FROM hra');
$HladArray = Db::queryOne('
        SELECT hlad
        FROM hra');
$IdArray = Db::queryOne('
        SELECT id
        FROM hra');
foreach ($JmenoArray as $jmeno) {

}
foreach ($ZivotArray as $zivot) {

}
foreach ($HladArray as $hlad) {

}
foreach ($IdArray as $id) {

}
require_once 'tridy/Lide.php';
$postava = new Lide("$jmeno", "$zivot", "$hlad");
$postava->Zivot();

Vím ty foreach mám špatně. Prosím nevšímejte si toho. :D
Kód třídy lide.php:

<?php
class Lide
{
    public $jmeno;
    public $zivot;
    public $hlad;
    public function __construct($jmeno, $zivot, $hlad)
    {
      $this->jmeno = $jmeno;
      $this->zivot = $zivot;
      $this->hlad = $hlad;
    }
    function Zivot()
    {
        echo('<table border="1">');
        echo ('<tr><th>' . "Jméno vaší herní postavy:");
        echo ('</th><th>' . "Život vaší herní postavy:");
        echo ('</th><th>' . "Hlad vaší herní postavy:");
        echo('</th></tr>');
        echo ('<tr>');
        echo ('<td>' . "$this->jmeno");
        echo ('</td><td>' . "$this->zivot");
        echo ('</td><td>' . "$this->hlad");
        echo('</td></tr></table>');
    }
}

Mohl by mi s tím prosím někdo pomoct ?

 
Odpovědět
14.2.2016 10:30
Avatar
Odpovídá na lukas.sei
Uživatel sítě :14.2.2016 17:49

Ahoj zkus změnit

require_once('Db.php');

na

require_once('/Db.php');
Nahoru Odpovědět
14.2.2016 17:49
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Uživatel sítě
Uživatel sítě :14.2.2016 17:59

Teď mi došlo, že to je blbost, jinak by to házelo chybu, že to nenašlo ten soubor. :/

Nahoru Odpovědět
14.2.2016 17:59
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na lukas.sei
Martin Štěpánek :14.2.2016 22:14

Zkus vložit třídu DB a volat funkci na připojení do databáze přímo v index.php ;-)

Nahoru Odpovědět
14.2.2016 22:14
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
lukas.sei
Člen
Avatar
lukas.sei:15.2.2016 6:24

Když to dám přímo do inde.php stane se téměř to samé. Při prvním načtení se vše načte jak má. Ale při automatické aktualizaci to ukáže
"Fatal error: Class 'Db' not found in C:\xampp\htdoc­s\JednoduchaH­ra\CteniDataba­ze\Db_load.php on line 3"

 
Nahoru Odpovědět
15.2.2016 6:24
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 5 zpráv z 5.