[ _boby_ @ 21.02.2011. 15:45 ] @
Ovako, u pitanju je minijaturna studentska sluzba. Imam gotovu bazu sa tabelom "dosije" u kojoj su podaci o studentima (indeks, ime, prezime itd.) E sad moguce je da su u bazi 2 ili vise ljudi koji imaju razlicite br. indeksa ali se isto zovu i prezivaju. Sad ja pokupim podatke o sudentu iz baze, smjestim ih u odgovarajuce promjenlijive u php i proslijedim html fajlu koji ih prikaze. Medjutim ako postoje 2 takva studenta treba da imam dugme sledeci koji ce prebaciti podatke o sledecem studentu koji se tako zove (ako postoji). Ako takav ne postoji treba da dugme bude disabled. Takodje ako ih ima vise, kad se dodje do zadnjeg treba se ispise poruka "kraj liste". Ako je samo jedan student takav ne treba da se ispisuje nista.
[ VladaSu @ 21.02.2011. 16:14 ] @
I sta je problem? Sve si lepo napisao kako treba da radi samo treba napraviti.
Mozda je bolje da drugacije zamislis interfejs. Da imas filter po imenu i prezimenu i da ispod filtera imas tabelu sa rezultatima pa onaj ko radi neka izabere kojeg studenta hoce.
[ _boby_ @ 21.02.2011. 16:43 ] @
Ne mogu tako. Mora prvo da se otvori jedan od studenata pa ako ih ima jos da se onda lista. Znam i ja to da prvo pokazem koji su to pa onda da se izabere koji treba da se prikaze, ali moram da uradim drugacije. Tako mi je zadato.
[ Milos911 @ 21.02.2011. 17:05 ] @
Ja znam "seljacku" varijantu: Svaki put kad uzmes studenta iz baze, ti proveri da li ima jos jedan sa tim imenom. Ako ima, dodas link za sledeceg studenta, u kome prosledis id studenta koji je prvi na listi duplih. Posle napravis drugi upit za tog drugog/treceg/x studenta, ali tako da se isti nalazi na id koji je veci od ovog sto si ga nasao prvog. Al zamrsih, sigurno postoji laksi nacin da se ovo resi, ali ako ga niko ne napise evo ti jednog resenja.
[ Milos911 @ 21.02.2011. 23:09 ] @
Setih se boljeg nacina: Da ne bi uvek radio pretragu za dupla imena, dodaj jednu kolonu u bazu, u koju ces upisivati da li izabrano ime ima duplikat. Sad imas dve opcije: opcija broj jedan je da ne pravis drugu tabelu, nego da u to polje upisujes napr 0 ako nema duplikata, a 1,2,3,4,5.... ako ima (ovo 12345 su ti grupe, znaci stavis da svaki pera peric bude 1, zika zikic 2). Druga opcija ti je da ovo isto uradis u drugoj tabeli, mada sad kad razmisljam zasto bi to radio bzvz. Znaci uradi prvo, naravno grupe i proveru duplikata radis prilikom upisa novog studenta u bazu... Eto, pa ako ti nesto nije jasno, pitaj...
[ dakipro @ 22.02.2011. 07:20 ] @
Citat:
Milos911: ....naravno grupe i proveru duplikata radis prilikom upisa novog studenta u bazu...

i prilikom svakog editovanja i brisanja studenata.
Ja bi isao sa search po imenu na view details, radis prakticno obicnu paginaciju samo sto imas samo jednog studenta izlistanog (tj detaljno prikazanog).
[ _boby_ @ 22.02.2011. 14:15 ] @
Ne mogu bazu mjenjati, mora ostati ovakva kakva jeste.

@dakipro: Nisam bas razumio sta kazes.
[ Horvat @ 22.02.2011. 15:37 ] @
zar nije jednostavnije (i logicnije) vrsiti pretragu po broju indexa nego po imenu?
[ _boby_ @ 22.02.2011. 19:06 ] @
Ljudi sve je to tako kako kazete i lakse i logicnije. Ali ja sam dobio zadatak da uradim onako kako sam rekao. Ne mogu mijenjati bazu i moram pretrazivati po imenu i prezimenu i tek kad prikazem studenta na dugme sledeci prikazem sledeceg koji se tako zove.
[ Milos911 @ 22.02.2011. 20:21 ] @
http://www.elitesecurity.org/p2816201
Onda seljacka varijanta. Ako ti nesto nije jasno pitaj...
[ _boby_ @ 22.02.2011. 22:16 ] @
Pa jasno mi je djelimicno. Ali jeste zamrseno je. Ako moze malo opsirnije da se napise ili da ja pastujem nesto koda ovdje?
[ Horvat @ 22.02.2011. 23:22 ] @
ajd ti prvo reci sta je uopste cilj tog programa?

jer ako je cilj pronaci studenta, onda je samo upisom imena i prezimena pogresan nacin, upravo zato jer nije jedinstven (i sta, nadjes na 10 petra petrovica i rucno ces gledati koji mu je broj indexa da bi nasao pravog?)

a kako da uradis onu "majmunaciju", pa izbrojis da li rezultata ima vise od 1, ako ima, onda imas dugme dalje,ako nema, onda nemas

al ja ti ipak savetujem da popricas s profom o ideji da se promeni pretraga na indexe (osim ako cilj nije samo vezba da vide kako bi resili prikazivanje vise "istih" rezultata)
[ _boby_ @ 23.02.2011. 11:42 ] @
TEMA ZA SEMINARSKI RAD
Predmet : Baze podataka


1. Unos i ažuriranje podataka o studentima (tabela dosije)

Napisati program koji omogućava upis i ispravljanje postojećih podataka o studentima.
Prvo je potrebno omogućiti korisniku da izabere da li želi da vrši unos ili mijenjanje.
U slučaju da se vrši unos, prikazati novi formular koji to omogućava, a ako se mjenjaju podaci prikazati formular na kome se unosi ime i prezime kandidata. Nakon toga se prikazuje formular koji sadrži podatke o pojedinačnom kandidatu čiji su podaci identični unetim. Pritiskom na dugme NAREDNI prikazuju se podaci o sledećem kandidatu koji zadovoljava postavljeni uslov. A pritiskom na dugme IZMJENA omogućava se promjena prikazanih podataka.

Polja u formularu koja odgovaraju atributima INDEKS, GOD se ne mogu mijenjati. Sadržaj svih ostalih atributa može da se promjeni.

Pored ovoga, program treba da obezbjedi sledeće:
Ako se pri uzastopnim prikazima kandidata koji zadovoljavaju postavljene uslove iscrpi njihov spisak, prikazati poruku "Kraj spiska". Poželjno je ne prikazivati dugme NAREDNI ako nema više odgovarajućih kandidata.
Obezbijediti kontrolu ispravnosti promjenjenih podataka, kao i uslov da sadržaj nijednog polja podložnog promjeni ne može da bude prazan.
[ Predrag Supurovic @ 23.02.2011. 12:41 ] @
Pa dobro možda je cilj zadatka da student nauči kako da napravi sistem koji se koristi po principu sledeći/prethodni. To je vrlo česta potreba u veb interfejsu, iako ovo možda nije baš najbolji primer.

Rešenje je da uvedeš jedan parametar koji se proslećuje skripti, a koji govori koju osobu iz liste po redu treba da prikazuješ. To koristi da izabereš odgovarjući slog iz baze, a na dugmad prethodni i sledeći samo menjaj vrednost tog parametra. naravno, proveravaj granične vrednosti da ti se ne desi da skruit pokša da prikaže podatke o osobi koja ja pre prve, ili posle poslednje.

[ loonies @ 23.02.2011. 17:34 ] @
Code:

<form action="korisnik/listaj" method="get">
    <input type="text" name="ime" />
    <input type="text" name="prezime" />
   ....
</form>


U skripti korisnik/listaj uzmes rezultat koji odgovara kriterijumu ogranicavajuci ga sa OFFSET-om i LIMIT-om:

Code:

$limit = 1;
$offset = $strana * $limit;
SELECT * FROM `student` WHERE `ime` = .... AND `prezime` = .... ORDER BY .... OFFSET $offset LIMIT $limit;


sada to prikazes pomocu paginacije:

Code:

<form action="korisnik/uredi?strana=2&ime=...&prezime=..." method="post">
    <input type="hidden" name="id" value="$id" />
    <input type="text" name="prezime" value="$prezime" />
    <input type="text" name="ime" value="$ime" />
    ....
</form>

<a href="korisnik/listaj?strana=2&ime=...&prezime=...">nazad</a>
<a href="korisnik/listaj?strana=4&ime=...&prezime=...">napred</a>


Ostaje jos skript korisnik/uredi u kojem radis izmenu podataka.

Ako ne koristis AJAX moras i u form akciji za izmenu da "vuces" stranu, ime i prezime da bi se posle submit-a vratio na istog korisnika.




[ _boby_ @ 23.02.2011. 22:22 ] @
ne radim ajax a ovo cu probati cim stignem