[ _CaRtMan_ @ 03.07.2008. 19:03 ] @
Code:
<?php

include "config.php";


Class Korisnik{
    
var $podaci;

    function get_info($n){
        
        session_start();
        $user_id = $_SESSION['user_id'];    
        $query = mysql_query("SELECT * FROM otkorisnik WHERE idkorisnik='$user_id'") or die('Greska :)');
        while($a=mysql_fetch_array($query)){
        $n = $a; 
    
        }
     }
}
            
$a = new Korisnik;
echo $a->get_info(username);
             
?>


I ne ispise mi ?
[ Man-Wolf @ 03.07.2008. 20:26 ] @
Pa ne mozes tako :-))

Imas dva/tri resenja:

1. Da ispises u okviru funkcije:

Code:

<?php

include "config.php";


Class Korisnik{
    
var $podaci;

    function get_info($n){
        
        session_start();
        $user_id = $_SESSION['user_id'];    
        $query = mysql_query("SELECT * FROM otkorisnik WHERE idkorisnik='$user_id'") or die('Greska :)');
        while($a=mysql_fetch_array($query)){
        $n = $a; 
        echo $n; // Prikazujemo vrednost koju smo dobili iz baze
        }
     }
}
            
$a = new Korisnik;
"echo $a->get_info(username);" // Ovo treba obrisati ....
             
?>


2. Da smestis u neku promenljivu koja nije samo lokalna(u okviru funkcije) i da prikazes onda:

Code:

<?php

include "config.php";


Class Korisnik{
    
var $podaci;

    function get_info($n){
        
        session_start();
        $user_id = $_SESSION['user_id'];    
        $query = mysql_query("SELECT * FROM otkorisnik WHERE idkorisnik='$user_id'") or die('Greska :)');
        while($a=mysql_fetch_array($query)){
        $this->n = $a; // Smestamo rezultat u "globalnu promenljivu" -> n <- koja je vidljiva i van funkcije
    
        }
     }
}
            
$a = new Korisnik;
echo $a->n; // I stampamo tu promenljivu ....
             
?>


3. Nacin (nisam 100% siguran ali probaj) je nesto slicno onome sto si ti probao, stim sto funkcija mora da vrati neku vrednost da bi imalo sta da se prikaze, odnosno:

Code:

<?php

include "config.php";


Class Korisnik{
    
var $podaci;

    function get_info($n){
        
        session_start();
        $user_id = $_SESSION['user_id'];    
        $query = mysql_query("SELECT * FROM otkorisnik WHERE idkorisnik='$user_id'") or die('Greska :)');
        while($a=mysql_fetch_array($query)){
        $n = $a;
        return $n; // Sta funkcija da da kao rezultat izvrsavanja ....
    
        }
     }
}
            
$a = new Korisnik;
echo $a->get_info(username); // I stampamo ono sto funkcija vraca...
             
?>


Pozdrav !

EDIT: I nemoj da stavljas session_start u okviru funkcije, jer mu nikako mesto nije tu ! Iskljucivo se stavlja na pocetak fajla ....
[ _CaRtMan_ @ 03.07.2008. 20:43 ] @
E hvala na odgovoru :-) , pokusavam sad. Samo ne znam sto ce mi onda onaj atribut (var $podaci) (DRUGI primjer), ako ga nigdje ne koristim ?

EDIT: Uspio sam ovako:

Code:
<?php
session_start();
include "config.php";


Class Korisnik{
    
var $podaci;


    //Uzimanje podataka o logovanom korisniku    
    function get_info($n){
              
        $user_id = $_SESSION['user_id'];    
        $query = mysql_query("SELECT * FROM otkorisnik WHERE idkorisnik='$user_id'") or die('Greska :)');
        while($a=mysql_fetch_array($query)){
        $podaci = $a[$n];
        return $podaci;
        }
    }
 
}           
             
?>


I onda tamo

Code:

$a = new Korisnik;
echo $a->get_info(username);  //zavisi sta zelim


Hvala na inspiraciji :)

[Ovu poruku je menjao _CaRtMan_ dana 03.07.2008. u 22:36 GMT+1]
[ Man-Wolf @ 04.07.2008. 14:47 ] @
Sto se tice tog var $podaci, nisam ni gledao taj deo ;-)) Hehe, Pozdrav
[ beep @ 04.07.2008. 15:21 ] @
Citat:
_CaRtMan_ Samo ne znam sto ce mi onda onaj atribut (var $podaci) (DRUGI primjer), ako ga nigdje ne koristim ?


pa i ne treba .... da bi koristio var $podaci moras da pristupis promenjivoj sa $this-> , u suprotnom to je obicna promenjiva ... obirsi je u tvom zadnjem primeru i videces da radi i bez var $podaci ... a moze i ovako

Code:
echo Korisnik::get_info($n);
[ Man-Wolf @ 04.07.2008. 16:41 ] @
@beep - jel nije problem samo da mi kazes, koja je razlika izmedju "$Korisnik->getinfo" i "$Korisnik::getinfo"? Ako uopste postoji razlika?
[ _CaRtMan_ @ 05.07.2008. 13:21 ] @
Evo mene evo problema. :D Sad hocu da napravim funkciju koja provjerava da li je korisnik admin, ako nije ide die();

Znamo da koristim:

Code:

<?php
session_start();
include "config.php";


Class Korisnik{
    
var $podaci;


    //Uzimanje podataka o logovanom korisniku    
    function get_info($n){
              
        $user_id = $_SESSION['user_id'];    
        $query = mysql_query("SELECT * FROM otkorisnik WHERE idkorisnik='$user_id'") or die('Greska :)');
        while($a=mysql_fetch_array($query)){
        $podaci = $a[$n];
        return $podaci;
        }
    }
 
}           
             
?>


Pokusao sam sada napisati

function admin_odbij(){
echo get_info(admin)
}

cisto da vidim hoce li mi ispisati je li admin (1-true,0-false), ali ne ispise, izbaci mi gresku:
Fatal error: Call to undefined function get_info()

Ne znam kako bih mogao pristupiti? Hmm.

EDIT:

sad sam uradio ovo:

Code:
function get_info($n){              
            $user_id = $_SESSION['user_id'];    
            $query = mysql_query("SELECT * FROM otkorisnik WHERE idkorisnik='$user_id'") or die('Greska :)');
            while($a=mysql_fetch_array($query))
            $this->podaci = $a[$n]; 
            
            return $this->podaci; 
                        
        }


Malo me zbunjuje, isto radi, a pojma nemam sta sam uradio. pretpostavljam da sam stavio podatke $a[$n] u $this->podaci dakle u onaj atribut podaci ? I sad bi podaci trebali da budu u atributu i mogu pristupit njima za ovo sto mi treba ? Ali kako? Hmm.

[Ovu poruku je menjao _CaRtMan_ dana 05.07.2008. u 14:39 GMT+1]

[Ovu poruku je menjao _CaRtMan_ dana 05.07.2008. u 14:39 GMT+1]
[ Man-Wolf @ 05.07.2008. 14:35 ] @
Sto se tice ove provere za admina, ne mozes da pristupas tako funkciji koja je u okviru klase, vec ovako (ako se obe nalaze u okviru klase Korisnik):

Code:

function admin_odbij(){
echo $this->get_info(admin);
}


A sto se tice ovog drugog sto si uradio, samo si omogucio da niz "podaci" ($this->podaci) bude vidljiv i van funkcije, tj. mozes bilo gde u kodu da stavis:

Code:

echo $a->podaci;


Nadam se da si skapirao :-)) Uglavnom, kad stavis u funkciji samo:

Code:

function aaa()
{
$promenljiva = xxx;
}


Onda $promenljiva postoji samo u toj funkciji.

A, kad stavis:

Code:

function bbb()
{
  $this->promenljiva = xxx;
}


Onda tu vrednost sto si zadao mozes da koristis i u funkciji i van funkcije :-)




[ _CaRtMan_ @ 05.07.2008. 15:46 ] @
Aaaaaa da da kontam :-) Hvala. Ali imam jos nekih pitanja.

1) Prvo me zanima sta je ovo zapravo $this obicna neka varijabla, s kojom se pristupa cemu ? To je malo konfuzno :-) , i da li bi moglo raditi da nisam stavio u podaci ? (Ovaj primjer da vidim je li admin ili ne) ?

2) Kad stavim u promjenljivu gore varijablu (u ovom slucaju podaci), ako hocu da pristupim bilo bi echo $this->podaci(username) recimo i sl. ? I gdje bih to radio? Tamo negdje van klase? U nekom fajlu gdje je pozvana klasa ?

3) Napravio sam ovako:

Code:

    function select_proizvodjac($filter='',$order=ASC){
        $select = mysql_query("SELECT * FROM otproizvodjac WHERE naziv='%$filter%' ORDER BY naziv $order");
        while($a=mysql_fetch_array($select)){
        $proizvodjaci = $a;    

        return $proizvodjaci;
        }
    }
    



I sad bih htio u tabeli da prikazem, ali malo me i to buni, pa ako ti nije problem da mi objasnis kako bih prikazao sve iz tabele otproizvodjaci.. Dosad sam samo ono jedan (username, password ili nesto treće). Bio bih ti izrazito zahvalan. :-)
[ Man-Wolf @ 05.07.2008. 22:54 ] @
THIS (engleski) = OVO (srpski). Sto znaci $this->podaci govori $ovo->podaci, odnosno promenljiva u okviru ove klase :-) A kad koristis tu promenljivu van funkcije, onda stavis $klasa->promenljiva ($klasa ===> klasa = new Class() ) :-) Valjda ga nisam previse zapetljao. I ovo vazi samo za funkcije u okviru neke klase , a kod obicnih funkcija, mislim da moras da definises neku promenljivu kao globalnu da bi mogo da je koristis. Primer:

Code:
 
$penis = "tuki"; // Dodeljujemo promenljivoj penis vrednost ---> tuki.

function test()
{
  // I sad ako hocemo ovu promenljivu da koristimo u okviru ove funkcije, pisemo ovako:
  global $penis;
  $penis = "vagina"; // Sada promenljiva penis dobije vrednost --> vagina
}


Evo i prakticnog primera:

Code:

$a = "blabla";
echo $a."<br>";

test();

echo $a;

function test()
{
  global $a;
  $a = "tralalalalalal";
}


:-)

2) Nisam bas najbolje razumeo pitanje ? Al cini mi se da sam ti odgovorio u okviru prvog pitanja. Znaci, u okviru funkcije pises:

Code:

  echo $this->podaci


A van funkcije:

Code:

  echo $klasa->podaci;


3) Cini mi se da ti nije dobar kod. Ovako bi ja uradio:

Code:

    function select_proizvodjac($filter='',$order=ASC){
        $select = mysql_query("SELECT * FROM otproizvodjac WHERE naziv='%$filter%' ORDER BY naziv $order");
        while($a=mysql_fetch_array($select)){
        $this->proizvodjaci = $a;    
        }      
    }

// Sad stampamo rezultate:

foreach ($a->proizvodjaci as $rezultat)
{
  echo $rezultat[XX]; // Ovde prepravi po potrebi, odnosno prema rezultatima, posto ne znam koja polja postoje u bazi :-)
}


A mozes i direktno iz funkcije da stampas :-)




[ _CaRtMan_ @ 06.07.2008. 09:11 ] @
Warning: Invalid argument supplied for foreach() in C: bla bla .... on line 32


32 foreach ($a->proizvodjaci as $rezultat){
33 echo $rezultat[idproizvodjac];
34 }


Hmm, mozda return fali gdje? Return bi bilo ono vracanje iz funkcije ? S:
[ beep @ 06.07.2008. 09:47 ] @
greska je nastala zato sto promenjiva $a->proizvodjaci nije niz ... ti si samo napiso gresku al ne i kod na osnovu koje se doslo do te greske ... drugo , pogresno koristis foreach funkciju ... trece , koristis mysql_fetch_array a nisi definiso kako da ti vrati podatke pa kad budes koristio foreach funkciju dobices duple podatke ...

@Man-Wolf

klasa::funkcija - pristupas funkciji klase bez objekta ... unutar te funkcije ne sme da se nalazi operator $this
[ _CaRtMan_ @ 06.07.2008. 09:55 ] @
Pa znamo kôd :-)

Code:

    function select_proizvodjac($filter='',$order=ASC){
        $select = mysql_query("SELECT * FROM otproizvodjac WHERE naziv='%$filter%' ORDER BY naziv $order");
        while($a=mysql_fetch_array($select)){
        $this->proizvodjaci = $a;   
        
        }      
        
        
    }


[ Man-Wolf @ 06.07.2008. 11:45 ] @
Aj uradi ovako, da ne mudrujemo mnogo ....:
[code]

function select_proizvodjac($filter='',$order=ASC){
$select = mysql_query("SELECT * FROM otproizvodjac WHERE naziv='%$filter%' ORDER BY naziv $order");
while($a=mysql_fetch_assoc($select)){
$this->proizvodjaci = $a;
echo $this->proizvodjaci['idproizvodjac'];

}


}
[ _CaRtMan_ @ 06.07.2008. 13:14 ] @
Eh nije to to,, treba napraviti da bude uklopljeno u tabelu ono, vise redova, vako ispise samo jedno pored drugog..

da moze kako vako

$this->proizvodjaci[$n] = $a;

pa nekako uklopit u tabelu S:
[ Man-Wolf @ 06.07.2008. 14:00 ] @
Pa ti oblikuj ispis, ja sam ti samo dao kako treba da izgleda :-))

P.S. Nemoj da radis tako ... Dobices drugaciji niz :-))
[ dakipro @ 06.07.2008. 14:22 ] @
@cartman, a da probas na berzi poslova, siguran sam da ce ti to neko resiti za veoma kratko vreme, posto vidim da uopste ne baratas cak ni osnovama php-a...
Ako ne umes da odradis jednu obicnu petlju da to odstamapas u tabeli, ozbiljno razmisli da li zelis da se bavis php-om uopste, bolje da vreme ulozis u nesto drugo sto ti malo vise ide od ruke
Takodje, tema vec izlazi iz okvira naslova (koji usput i nije bas definisan) u osnove html-a koji definitivno nisu za ovaj forum...