Php objekt

pokušavam jedan kod koji sam prije koristio pretvorit u objekt ali mi nikako ne uspjeva, zapravo uspjeva djelomično…

evo kod:

ovo je izvorni kod, uspio sam napravit da se podatci čitaju iz baze, stranice se uredno inkludaju u index ali tada dolazi do problema; dio podataka iz klase, odnosno metode se uredno ispisuju na toj inkludanoj stranici ali varijable ne, na index stranici dobijem ispis iz varijabli ali u inkludanim stranicama ne…

pa ako netko ima ideju… bio bih zahvalan!:klanjamse

Sta si za sad napravio?

pitanje je kako ovaj komad koda napravit da podatke čita iz baze a da funkcija ostane ista, kažem opet, napravio sam to ali očito na pogrešan način…
ako netko ima ideju na koji način se to treba pravilno riješiti, molio bih za pomoć!

A gdje je tu funkcija moram pitati? Ovo je proceduralan kôd da više ne može biti :slight_smile:

Možda nije funkcija u doslovnom HC programerskom smislu, ali je funkcija kao ona koja radi nešto, obnaša posao.

A @autor, prvo sam sebi objasni što treba, pa tek onda nama napišeš.

hm, niste pročitali tekst ispod koda…

ovaj kod koji sam zaljepio je izvorni kod od kojeg želim napravit ono što sam opisao.

znači od ovoga koda treba skrojit nekakvu funkciju koja će čitati to što treba iz baze i sve ostalo što sam napomenio…

A ajde, kad je bal…

Dakle, tablica:

# napravimo tablicu
# id (integer)
# stranica (char)
# dokument (char)
CREATE TABLE stranice (
   id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   stranica VARCHAR(40),
   dokument  VARCHAR(50)
);

# umetnemo ove dvije
INSERT INTO stranice (stranica, dokument) VALUES ('Stranica 1', 'stranica_1.php');
INSERT INTO stranice (stranica, dokument) VALUES ('Stranica 2', 'stranica_2.php');

[php]<?php

/* stvorimo klasu Stranica */
class Stranica {

/*
klasicni konstruktor
*/
public function __construct($host, $username, $password, $db) {
	
	/* spojimo se na bazu */
	mysql_connect($host, $username, $password) or die('Fail.');
	
	/* odaberemo tablicu */
	mysql_select_db($db) or die('Fail.');
	
}

/*
generiranje linkova
*/
public function generirajLinkove() {
	
	/* povucemo sve stranice */
	$query = mysql_query("SELECT * FROM stranice");
	
	/* i dok tih stranica ima.. */
	while($link = mysql_fetch_assoc($query)) {
		
		/* za svaku ispisi link */
		echo '<a href="?id='.$link['id'].'">'.$link['stranica'].'</a>';
		
	}
	
}

/*
generiranje stranice
*/
public function generirajStranicu() {
	
	/* malo procistimo nas ?p tj. u ovom slucaju ?id */
	$id = (!isset($_GET['id') || empty($_GET['id'])) ? 0 : mysql_real_escape_string($_GET['id']);
	
	/* izvrsimo query */
	$query = mysql_query("SELECT * FROM stranice WHERE id = '".$id."' LIMIT 1");
	
	/* ako ima tocno jedan rezultat */
	if (mysql_num_rows($query) == 1) {
		
		/* povucemo ga*/
		$rezultat = mysql_fetch_assoc($query);
		
		/* i inkludamo */
		include($rezultat['dokument']);
		
	}
	/* ako ne.. */
	else {
		
		/* inkludamo defaultno.. */
		/* e vidis, sad mi je tu mozak prestao raditi pa ovo nije najsretnija, tj najfleksibilnija solucija.. */
		/* ali evo prepustam tebi na mastu da sredis to */
		echo 'inkludam kajgod';
		
	}
	
}

}

/* stvorimo novu instancu klase Stranica i unesemo parametre za spajanje na bazu /
/
u slijedecem poretku: host, username, password, baza */
$stranica = new Stranica(‘localhost’, ‘root’, ‘root’, ‘test’);

/* generiramo linkove */
$stranica->generirajLinkove();

/* generiramo stranicu */
$stranica->generirajStranicu();

?>[/php]

Evo ga, ta “funkcija”.

I smatraj to ranim Božićnim poklonom jer inače ne poklanjam gotov kôd na ruke :slight_smile: volim malo tjerat na razmišljanje, al evo :slight_smile:

heh, na razmišljanje… jesam, jesam, razmišljo, pisao, i napravio ali nije ispravno radilo…
hvala, isprobat ću ovo pa javim kako je prošlo, i, da, stavit ću kod koji sam ja napravio poslje pa da mi objasni netko zašto neradi kako treba jer me strašno zanima!

evo isprobo sam tvoj prijedlog i našao puno sličnosti sa svojim rješenjem, nažalost postoji isti problem…

kad se stranica inkluda i ako u njoj imam neku formu koja podatke posta unutar sebe i zatim poziva funkciju koja ih treba obradit - ništa se ne dogodi.
ako funkciju za obradu postanih podataka stavim u index a ne u inkludanu stranica onda sve šljaka kak treba.
budući da ja želim instance tih funkcija i izvješće o statusu unutar inkludanih stranica ovo nije dobro rješenje…

najviše od svega me zanima zašto ovo opisano radi ako koristim onaj kod koji sam priložio u prvom postu a neradi sa ovim rješenjem…

evo koda kojeg sam ja skrojio:

to je bilo moje rješenje, uredno inkluda stranice ali kad u inkludanoj stranici imam formu koja posta podatke unutar sebe i poziva funkciju koja ih obrađuje ne događa se ništa.

primjer pozivanja funkcije:

još jedna stvar koja ne radi je kad recimo ova funkcija obradi podatke i pošalje izvješće nekoj varijabli u klasi, ona bi trebala unutar te inkludane stranice ispisat izvješće ali neuradi ništa…

ponavljam; kad se te radnje izvode u index stranici sve prođe u redu, kad se nešto treba odvit u inkludanoj stranici nedogađa se ništa…
dok se sa onim izvornim kodom sve odvija u najboljem redu…

dali netko ima ideju zašto se to događa i kako to riješit?!?

sve što instanciraš/inkludaš u index se i odvija u indexu.
U includanoj klasi se nikad ne događa ništa. Već se događa u file u kojem je klasa instancirana.

govoriš nešto što je jasno, ako je dokument inkludan onda je on dio dokumenta u koji se inkludao.

dokument koji inkludam (sa onim gornjim, rudimentalim kodom) sadrži u sebi formu koja podatke pošalje funkciji kaja je instancirana unutar tog inkludanog dokumenta i sve prođe u redu, međutim kad dokument inkludam sa ovim kodom koji je kolega (ako ga smijem tako nazvat) pretvorio u funkciju i onim kojeg sam ja pretvorio u funkciju dokument se inkluda, forma se prikaže ali se akcije ne izvede, pitanje je zašto se to događa…

ako sve šljaka sa onim kodom zašto onda neradi kad se taj isti kod pretvori u funkciju?!?

a da postaš kod ili barem rekreiraš manju verziju gdje se isti problem ponavlja.

mislio sam da je ona verzije koju sam posto dovoljna ali ako će se dobiti bolji uvid napravit ću manju verziju

u prvoj verziji je stari kod za generiranje linkova i inkludanje stranica, u drugoj verziji isto to samo stavljeno u funkcije.

[color=“Red”]prva verzija: [/color]ova verzija radi bez greške

index.php:

navigacija.php:

include.php:

stranica1.php:

primjerklasa.php:

[color=“Red”]druga verzija: [/color]

razlika je što sam kod za generiranje linkova i inkludanje stranica stavio u funkciju - može se pogledati ova funkcija koju sam već posto ili onaj prijedlog od “nitko”, princip je isti ali događa se to da se stranice bez problema inkludaju ali kad se pokuša postat forma iz “stranica1.php” (iz navedenog primjera) ništa se ne dogodi, dok se u prvom primjeru sve izvrši u najboljem redu.

napomena: ako pozivanje funkcije i varijablu iz “stranice1.php” kopiram direktno u “index.php” podatci se obrade i dobijem izvještaj varijable.

dajte ljudi bar nekakvu ideju da znam u kojem smijeru da istražujem, iscrpio sam sve svoje skromno znanje o php-u i stojim pred zidom…

a da daš primjer koji ne radi, a ne primjer koji radi i onda opišeš problem.
možda je negdje nekakav typo zbog kojeg ne radi.

ti mene malo sad zezaš jelda, nema nikakve greške u sintaksi, a obadva primjera su već dana, a za slučaj u kojem neradi postoje dva, djelomično različita primjera, a za slučaj gdje radi dan je jedan primjer (doduše u dva posta).

lako može dogoditi da je greška u onom drugom, djelomičnom djelu kojeg nema ili nešto u tom djelomičnom djelu uzrokuje grešku.
a i prije će ti netko pogledati kod ako ga vidi napisan nego da mu daš tri linije koda napisane a druge četri opisane.

Tvoj problem je to sto se ne znas izraziti, tvrdis da si rijesio, cak dobis i gotov kôd i kao to ne valja, a tko ce ga znati zasto jer te parcijalno napisane kôdove ne pokazujes. Moguce je da je rijec o nekoj greski u samom kôdu, ali ja imam osjecaj da je ovdje rijec o greski u samoj logici, da ne vidis ni sam kako bi se trebalo pravilno pristupiti zadatku, a mi ti ne mozemo pomoc kada tako konfuzno i djelomicno govoris :slight_smile:

neznam što je tebi tu lonfuzno kad si mi upravo ti (nitko) dao prijedlog u obliku kod-a.

neda mi se više naganjat i igrat gluhih telefona pa ću lagano odustat od traženja pomoći ovdje.

u svakom slučaju hvala svima na konstruktivnim prijedlozima.