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
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ć!
# 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’);
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?!?
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.
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