[ dsivic @ 21.07.2008. 12:07 ] @
Prilikom unosa u bazu podataka ovo mi nije radilo:
Code:

class clan
{
    private $nick;
    private $pass;
    private $email;
    private $data = array();
    private $err = array();


public function setData($data)
    {
        if(is_array($data))
        $this->data = $data;
             }
public function InsertData()
    {
        $sql = 
        "
            INSERT INTO clan SET 
            nick =  '$this->nick',      
            lozinka=  '$this->pass',   
            ime =  '$this->data[ime]',       
            prezime     =  '$this->data[prezime]' 
                          " ;
    }
}       


U tabelu se upisu podaci :
"
----------------------------------
ime | prezime
----------------------------------
Array[ime] | Array[prezime]
----------------------------------
" itd...

a kada uradim ovo sa promjenjivom $this->data onda radi :
$data = $this->data;

INSERT INTO clan SET
nick = '$this->nick',
lozinka = '$this->pass',
ime = '$data[ime]',
prezime = '$data[prezime]'

Moze li mi neko objasniti zasto.
[ Miroslav Ćurčić @ 21.07.2008. 12:31 ] @
Code:

...
   ime  =  '".$this->data['ime']."',       
   prezime =  '".$this->data['prezime']."' 
...

Kad bi koristio neki editor s ispravnim PHP higlight-om video bi da parče "[ime]" nije ušlo kao deo promenljive kroz takvo direktno ubacivanje u "..." string.

To nema veze s klasom već sintaksom u radu s stringovima.
[ dsivic @ 21.07.2008. 12:42 ] @
Tako radi, ali nije mi jasno zasto ne radi na prvi nacin. PHP ne izbacuje nikakvu gresku.

a i izvan klase u kodu rade oba nacina.
[ Nemanja Avramović @ 21.07.2008. 13:11 ] @
Izvan klase nemaš referenciranje na objekat ($this->) već samo promenljivu ($promenljiva) pa zato radi. U klasi bi trebalo da radi ovako:

"SELECT * FROM {$this->data['tabela']} WHERE blabla..."
[ Miroslav Ćurčić @ 21.07.2008. 13:28 ] @
Takvo direktno ubacivanje u string ima neka ograničenja, i ti si upravo naleteo na jedno.

Zapamti da kod ovakvog ubacivanja promenljivoj možeš dodati samo jedan parametar, da ga tako nazovemo,
a ostali parametri se tretiraju kao deo glavnog stringa.

Dakle, promenljiva $this je prošla s parametrom data ali se nastavak ignoriše,
isto tako ne bi prošlo ubacivanje $Polje[0][0] gde bi ignorisao poslednje [0].

Možda jeste glupo ograničenje, ali šta je - tu je.

Još jedan bug koji sam primetio, ako u glavnom stringu imaš neki ne-printabilni karakter (prikazuje kao "kockica" jer ga nema u fontu) onda ćeš dobiti grešku ako iza njega bilo šta ubacuješ na ovaj način,
dok ubacivanje sa prekidom (npr: ...".$A."...) radi bez problema.
[ dsivic @ 21.07.2008. 14:46 ] @
Hvala puno. Uvijek se ima sta nauciti.