Autor Zpráva
dikulus
Profil
Dobrý den,
zkoušel jsem v PHP dělat třídy a funkce. Funkce, která by měla vrátit polé proměnných mi ale nevrátí nic, než chybu:
Fatal error: Cannot use object of type databaze as array in main.php on line 28
zdrojový kód odkud si skript bere funkci prectiDB() ze třídy databaze je tady:
class databaze {

var $sql;

function spustSQL() {
$spojeni=mysql_connect("mysql.webzdarma.cz","testynagympl","mojetajneheslo");
mysql_db_query("testynagympl", $sql, $spojeni);
}

var $kdo;

function prectiDB($kdo) {
//připojí se do databáze
$spojeni=mysql_connect("mysql.webzdarma.cz","testynagympl","mojetajneheslo");
$co="SELECT * FROM uzivatele WHERE uzivjmeno LIKE '$kdo'";
$navrat=mysql_db_query("testynagympl", $co, $spojeni);
while (list($uzivjmeno, $heslo, $bezpotazka, $odpoved, $pravejmeno ,$al, $ipal, $email, $overeno, $idadresy, $opravneni) = mysql_fetch_row($navrat)){
//načte hodnoty sloupců u daného uživatele do pole proměnných $vratit
$vratit["uzivjmeno"] = $uzivjmeno;
$vratit["heslo"] = $heslo;
$vratit["bezpotazka"] = $bezpotazka;
$vratit["odpoved"] = $odpoved;
$vratit["pravejmeno"] = $pravejmeno;
$vratit["al"] = $al;
$vratit["ipal"] = $ipal;
$vratit["email"] = $email;
$vratit["overeno"] = $overeno;
$vratit["idadresy"] = $idadresy;
$vratit["opravneni"] = $opravneni;
}
return $vratit;
}
}

Z druhého skriptu pak zavolám fukci a chci zobrozazit výsledek:
$data = new databaze;
$data -> prectiDB(Sada);

echo($data["uzivjmeno"]);
Ale PHP mi vrátí je výše uvedenou chybu. Prosím, poraďte mi v čem dělám chybu.
Děkuji
shaggy
Profil
dikulus:
poraďte mi v čem dělám chybu
Však to tam máš napísané:
Cannot use object of type databaze as array
Zrozumiteľnejšie to už nemôže byť (od človeka, ktorý sa púšťa do OOP očakávam schopnosť pracovať s anglickým textom).

Tu si tie dáta vrátiš:
$data -> prectiDB(Sada);
ale nič s nimi nerobíš, nikam ich nepriradíš.

Aby si mohol robiť s polom, ktoré ti to vráti, musíš to zapísať napr. takto:
$userData = $data -> prectiDB(Sada);
...
echo($userData["uzivjmeno"]);
dikulus
Profil
shaggy:
„poraďte mi v čem dělám chybu“
Však to tam máš napísané:
„Cannot use object of type databaze as array“
Zrozumiteľnejšie to už nemôže byť (od človeka, ktorý sa púšťa do OOP očakávam schopnosť pracovať s anglickým textom).
Neboj se, já jsem věděl co mi to tam anglicky píše, ale měl jsem špatnou otázku, mělo to být špíše poraďte mi jak to co mi vrátí funkce přečíst.
Ale díky, pomohl jsi.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: