Forum » Izdelava spletišč » PHP - pomoč
PHP - pomoč
matotej ::
Alo!
Dobil sem nalogo za postavitev ene strani s pomocjo PHP&MySQL. Uporabniki bi se lahko logirali in tam imeli
povezavo do neke datoteke (popravek programa). Jaz sem se to lotil po kmečko omogočil adminu, da vpiše neko povezavo, ki
se potem uporabniku prikaže ko se logira. Kar pa seveda ni bilo prav. Dobil sem sledeča navodila, ki mi pa niso jasna. Ker sem
n00b bi nekoga prosil za pomoč, kako se to naredi.
"Pri vsakemu uporabniku se lahko doda vec le njemu, uporabniku specificnih povezav do upgradov, navodil,... Torej lahko imas tabelo uporabnikov z vsemi njihovimi podatki, nato pa se eno tabelo, kjer so zbrani linki z identifikacijo, kateremu uporabniku pripadajo. Linke lahko seveda tudi brisemo."
Pogledal sem pa tutorialov, ampak nisem našel 0 uporabnega.
Hvala!
lp
Dobil sem nalogo za postavitev ene strani s pomocjo PHP&MySQL. Uporabniki bi se lahko logirali in tam imeli
povezavo do neke datoteke (popravek programa). Jaz sem se to lotil po kmečko omogočil adminu, da vpiše neko povezavo, ki
se potem uporabniku prikaže ko se logira. Kar pa seveda ni bilo prav. Dobil sem sledeča navodila, ki mi pa niso jasna. Ker sem
n00b bi nekoga prosil za pomoč, kako se to naredi.
"Pri vsakemu uporabniku se lahko doda vec le njemu, uporabniku specificnih povezav do upgradov, navodil,... Torej lahko imas tabelo uporabnikov z vsemi njihovimi podatki, nato pa se eno tabelo, kjer so zbrani linki z identifikacijo, kateremu uporabniku pripadajo. Linke lahko seveda tudi brisemo."
Pogledal sem pa tutorialov, ampak nisem našel 0 uporabnega.
Hvala!
lp
BlueRunner ::
Bodisi si najdi programerja, ki ti bo to uredil v eni uri, bodisi vzemi v roke kakšno resno knjigo o programiranju. Morda Programming PHP.
Vsekakor pa nikoli ne sprejmi dela, za katerega nisi usposobljen. Tudi, če se boš kdaj usposobil za to delo, ti ne bo več nikoli nihče zaupal.
Vsekakor pa nikoli ne sprejmi dela, za katerega nisi usposobljen. Tudi, če se boš kdaj usposobil za to delo, ti ne bo več nikoli nihče zaupal.
Tody ::
Huh ja nekako tako :D
Torej tole je login skripta : klikot
Tole je ODLIČEN SLOVENSKI PHP KROŽEK (Bravo Marko ;)) Spletni PHP krožek
Tole je tudi dost dober angleški php krožek PHP Tutorial - Functions
Vse ostalo je prepuščeno tebi...
Torej moreš narediti neko forumo kjer se bo uporabniku dodajalo pravice.
Odvisno od tvojih zmožnosti... Če imaš ful časa na voljo si sam sprogramiraj zadevo (ti bo koristilo če se misliš še naprej gibat v tej smeri) Če nimaš časa ne volje reskiraj ene 5.000 sit za programerja (povprašaj na slo-techu)
Torej tole je login skripta : klikot
Tole je ODLIČEN SLOVENSKI PHP KROŽEK (Bravo Marko ;)) Spletni PHP krožek
Tole je tudi dost dober angleški php krožek PHP Tutorial - Functions
Vse ostalo je prepuščeno tebi...
Torej moreš narediti neko forumo kjer se bo uporabniku dodajalo pravice.
Odvisno od tvojih zmožnosti... Če imaš ful časa na voljo si sam sprogramiraj zadevo (ti bo koristilo če se misliš še naprej gibat v tej smeri) Če nimaš časa ne volje reskiraj ene 5.000 sit za programerja (povprašaj na slo-techu)
Zgodovina sprememb…
- spremenil: Tody ()
matotej ::
OK zgleda me niste najbolj razumeli.
Jaz imam to že ful narejeno. Stvar se pač učim in naredil sem, da se oseba lahko logira, spreminja svoje podatke. Imam administratorja, ki lahko dodaja admine in nove uporabnike (tudi briše in ureja). Sedaj ti uporabniki naj bi imeli dostop do popravkov nekega programa. In te povezave do teh popravkov je treba realizirati na ta način, ki pa meni ni jasen.
"Pri vsakemu uporabniku se lahko doda vec le njemu, uporabniku specificnih povezav do upgradov, navodil,... Torej lahko imas tabelo uporabnikov z vsemi njihovimi podatki, nato pa se eno tabelo, kjer so zbrani linki z identifikacijo, kateremu uporabniku pripadajo. Linke lahko seveda tudi brisemo."
Tko, da bi samo prosil, če mi lahko mal razložite, kako se naredi te linke in na kakšen način delujejo?!
Hvala!
lp
Jaz imam to že ful narejeno. Stvar se pač učim in naredil sem, da se oseba lahko logira, spreminja svoje podatke. Imam administratorja, ki lahko dodaja admine in nove uporabnike (tudi briše in ureja). Sedaj ti uporabniki naj bi imeli dostop do popravkov nekega programa. In te povezave do teh popravkov je treba realizirati na ta način, ki pa meni ni jasen.
"Pri vsakemu uporabniku se lahko doda vec le njemu, uporabniku specificnih povezav do upgradov, navodil,... Torej lahko imas tabelo uporabnikov z vsemi njihovimi podatki, nato pa se eno tabelo, kjer so zbrani linki z identifikacijo, kateremu uporabniku pripadajo. Linke lahko seveda tudi brisemo."
Tko, da bi samo prosil, če mi lahko mal razložite, kako se naredi te linke in na kakšen način delujejo?!
Hvala!
lp
Alpheus ::
maš recimo 2 tabeli
v eni tabeli piše
ID - ime - vrsta - starost
--------------------------------
1 - janez - homo sapiens - 14 let
2 - miha - medved - 65 let
itd.
pol pa maš v drugi tabeli
recimo:
ID - popravk
--------------------------------
1 - popravek X
1 - popravek X2
2 - popravek Y1
1 - popravek nekaj
torej maš eno tabelo z IDji (prva celica) uporabnikov in pol tem IDjem (uporabnikom) prirejaš "popravke", saj če sem dobro razumel
v eni tabeli piše
ID - ime - vrsta - starost
--------------------------------
1 - janez - homo sapiens - 14 let
2 - miha - medved - 65 let
itd.
pol pa maš v drugi tabeli
recimo:
ID - popravk
--------------------------------
1 - popravek X
1 - popravek X2
2 - popravek Y1
1 - popravek nekaj
torej maš eno tabelo z IDji (prva celica) uporabnikov in pol tem IDjem (uporabnikom) prirejaš "popravke", saj če sem dobro razumel
VI VERI VENIVERSUM VIVUS VICI.
Zgodovina sprememb…
- spremenil: Alpheus ()
matotej ::
OK to štekam... tudi tko mam narejeno, vsak user ima svoj ID, ki je unique in auto_inc. Zdej admin more imet funkcijo za dodajat linke in potem določit še ID. V praksi določiš ID=37 in link=http://www.xxxyyxxy.xyx
Potem pa na njegovi user strani prikažem tiste linke "where ID=37"!
A bi to blo to?
lp
Potem pa na njegovi user strani prikažem tiste linke "where ID=37"!
A bi to blo to?
lp
BlueRunner ::
Za povezave many-to-many uporabiš povezovalno tabelo, ne pa tako, kot je Aplheus napisal. Relacija je many-to-many, zato, ker imaš lahko za vsako datoteko več uporabnikov, ki jim je dostopna, in za vsakega uporabnika več datotek, ki so jim dostopne. Več na več...
Tako administriraš seznam uporabnikov posebej, seznam datotek posebej in seznam povezav med uporabniki in datotekami (ugani zakaj se tabeli reče povezovalna) posebej. Sicer pa povezovalna tabela vsebuje samo dve polji: ID uporabnika in ID datoteke. Verjetno te je pa zmedlo to, da se zadevi reče "link table"... povezava == link... Nimajo pa "linki" med uporabniki in datotekami nikakršne povezave z URL "linki" v tabeli datotek.
Če se predstavljaš: izbereš uporabnika, nato pa se prikaže seznam vseh obstoječih datotek. Pri vsaki datoteki, za katero želiš, da bo uporabniku prikazana, pritisneš kljukico. Ko na vmesniku pritisneš submit, pa (po kmečko) najprej iz povezovalne tabele izbrišeš vse vrstice, kjer je user_id enak izbranemu userju, potem pa dodaš še vse vrstice, kjer je user_id enak izbranemu userju, datoteka_id pa ID-ju datoteke pred katero si dal kljukico.
Za seznam datotek pri prijavljenem uporabniku pa samo združiš povezovalno tabelo z tabelo datotek in filtriraš po user_id.
Glede na to, da pa je to ABC relacijskih podatkovnih baz, ti še vedno močno priporočam, da se čim prej vsedeš pred knjigo in se naučiš kaj in kako te zadeve delujejo. Po temu, kar si napisal se bi dalo sklepati, da si vedno na robu tega, da boš ostal brez naročila, ugleda in še česa. In to samo zato, ker se lotevaš zadev, ki jih še nisi "doma sprobal", da ne bo kdo rekel, da samo z knjigami posiljujem.
Tako administriraš seznam uporabnikov posebej, seznam datotek posebej in seznam povezav med uporabniki in datotekami (ugani zakaj se tabeli reče povezovalna) posebej. Sicer pa povezovalna tabela vsebuje samo dve polji: ID uporabnika in ID datoteke. Verjetno te je pa zmedlo to, da se zadevi reče "link table"... povezava == link... Nimajo pa "linki" med uporabniki in datotekami nikakršne povezave z URL "linki" v tabeli datotek.
Če se predstavljaš: izbereš uporabnika, nato pa se prikaže seznam vseh obstoječih datotek. Pri vsaki datoteki, za katero želiš, da bo uporabniku prikazana, pritisneš kljukico. Ko na vmesniku pritisneš submit, pa (po kmečko) najprej iz povezovalne tabele izbrišeš vse vrstice, kjer je user_id enak izbranemu userju, potem pa dodaš še vse vrstice, kjer je user_id enak izbranemu userju, datoteka_id pa ID-ju datoteke pred katero si dal kljukico.
Za seznam datotek pri prijavljenem uporabniku pa samo združiš povezovalno tabelo z tabelo datotek in filtriraš po user_id.
Glede na to, da pa je to ABC relacijskih podatkovnih baz, ti še vedno močno priporočam, da se čim prej vsedeš pred knjigo in se naučiš kaj in kako te zadeve delujejo. Po temu, kar si napisal se bi dalo sklepati, da si vedno na robu tega, da boš ostal brez naročila, ugleda in še česa. In to samo zato, ker se lotevaš zadev, ki jih še nisi "doma sprobal", da ne bo kdo rekel, da samo z knjigami posiljujem.
mte ::
in v čem se tole razlikuje od česar sem jaz napisal?
V tem da ti imaš 2 tabele, rabil bi pa 3. Tabelo z uporabniki, tabelo s popravki in povezovalno tabelo, ki vsebuje samo id-je.
Tvoj pristop je one-to-many - nek popravek lahko pripada samo enemu uporabniku.
Zgodovina sprememb…
- spremenil: mte ()
Looooooka ::
relacijske se ponavad dela s tremi tabelami
tabela 1
userid
username
userpassword
userwhatever
tabela 2 -> datoteke al whatever
fileid
filedescription
fileblabla
tabela 3 rel_username_file
id
userid
fileid
in vse kar rabs je pol lepo left join na usertabelo...simple k pasulj...ce pa to delas sam z dvema tabelama...pol pa sklepam da se bos nekje zabasu s kolumni kar je neucinkovito.
tabela 1
userid
username
userpassword
userwhatever
tabela 2 -> datoteke al whatever
fileid
filedescription
fileblabla
tabela 3 rel_username_file
id
userid
fileid
in vse kar rabs je pol lepo left join na usertabelo...simple k pasulj...ce pa to delas sam z dvema tabelama...pol pa sklepam da se bos nekje zabasu s kolumni kar je neucinkovito.
matotej ::
Ful hvala vm za pomoč.
Stvar počasi napreduje in mislim, da bom kmalu pri kraju. Samo nisem vedel kako se lotit.
Aja brez skrbi tle ne gre za noben denar, delam seminarsko za faks... problem je bil, ker nisem dobil
dovolj točnih navodil(samo ustno navodil). In ko sem mislil, da sem že končal so prihajale nove stvari...
Hvala!
lp
Stvar počasi napreduje in mislim, da bom kmalu pri kraju. Samo nisem vedel kako se lotit.
Aja brez skrbi tle ne gre za noben denar, delam seminarsko za faks... problem je bil, ker nisem dobil
dovolj točnih navodil(samo ustno navodil). In ko sem mislil, da sem že končal so prihajale nove stvari...
Hvala!
lp
BlueRunner ::
Ah, če je pa to seminarska za faks, potem greš pa že definitivno v pravi smeri... Strah je takrat, kadar se ljudje učijo na stroške nič hudega slutečih naročnikov.
matotej ::
Prišel sem še do 1 zadrege.
Stvar mi zdej lepo dela. Naredil sem upload datotek, potem še to tabelo za povezavo. Amapak, ko naredim join mi koda izpise
vsako pravo rešitev natančno 4x!
if ($dat_licenca > $datum)
{
$join = mysql_query("SELECT * FROM users, relacija, upload WHERE $_id = relacija.id and relacija.fileid= upload.fileid") or die(mysql_error());
while($rowj = mysql_fetch_array( $join ))
{
$_fid = $rowj['fileid'];
$_fname = $rowj['filename'];
?>
/* tle mi izpise, ampak mi forum(zgleda ga mal mede php). pa vejetno to ni problem */
Tkole zgleda tale moja žalost od kode, če mi lahko kdo pomaga, zakaj se to izpiše 4x?!
lp
Stvar mi zdej lepo dela. Naredil sem upload datotek, potem še to tabelo za povezavo. Amapak, ko naredim join mi koda izpise
vsako pravo rešitev natančno 4x!
if ($dat_licenca > $datum)
{
$join = mysql_query("SELECT * FROM users, relacija, upload WHERE $_id = relacija.id and relacija.fileid= upload.fileid") or die(mysql_error());
while($rowj = mysql_fetch_array( $join ))
{
$_fid = $rowj['fileid'];
$_fname = $rowj['filename'];
?>
/* tle mi izpise, ampak mi forum(zgleda ga mal mede php). pa vejetno to ni problem */
Tkole zgleda tale moja žalost od kode, če mi lahko kdo pomaga, zakaj se to izpiše 4x?!
lp
BlueRunner ::
Narobe si se lotil... Povezovalna tabela ima ID polje iz user-jev in ID polje iz upload-ov. Ti dve polji obe sestavljata primarni ključ, dodatnega ID polja za samo "relacijo" pa nimaš, ker ga ne potrebuješ.
Da se ne boš več mučil, ker te teme očitno še ne razumeš. Osebno si mislim, da si zaslužiš negativno oceno za seminar, saj nimaš niti minimalnega znanja iz tega področja, ki ga od tebe nekdo očitno zahteva...
---------------------------------------------------------------------------------------------------------------
CREATE TABLE user (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE upload (
id SMALLINT UNSIGNED NOT NULL AUTO_INCEREMENT,
name CHAR(60) NOT NULL,
link CHAR(256) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE relacija (
user_id SMALLINT UNSIGNED NOT NULL,
upload_id SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY (user_id, upload_id)
);
---------------------------------------------------------------------------------------------------------------
Če hočeš pregled vseh uporabnikov in njihovi datotek (skupaj z uporabniki brez datotek):
SELECT * FROM users LEFT JOIN relacija ON user.id = relacija.user_id INNER JOIN upload ON relacija.upload_id = upload.id
Če hočeš samo pregled datotek za določenega uporabnika:
SELECT * FROM relacija INNER JOIN upload ON relacija.upload_id = upload.id WHERE relacija.user_id = $_id
Da se ne boš več mučil, ker te teme očitno še ne razumeš. Osebno si mislim, da si zaslužiš negativno oceno za seminar, saj nimaš niti minimalnega znanja iz tega področja, ki ga od tebe nekdo očitno zahteva...
---------------------------------------------------------------------------------------------------------------
CREATE TABLE user (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE upload (
id SMALLINT UNSIGNED NOT NULL AUTO_INCEREMENT,
name CHAR(60) NOT NULL,
link CHAR(256) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE relacija (
user_id SMALLINT UNSIGNED NOT NULL,
upload_id SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY (user_id, upload_id)
);
---------------------------------------------------------------------------------------------------------------
Če hočeš pregled vseh uporabnikov in njihovi datotek (skupaj z uporabniki brez datotek):
SELECT * FROM users LEFT JOIN relacija ON user.id = relacija.user_id INNER JOIN upload ON relacija.upload_id = upload.id
Če hočeš samo pregled datotek za določenega uporabnika:
SELECT * FROM relacija INNER JOIN upload ON relacija.upload_id = upload.id WHERE relacija.user_id = $_id
Zgodovina sprememb…
- spremenilo: BlueRunner ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Myslq index ne deluje???Oddelek: Izdelava spletišč | 2236 (2014) | algo |
» | Predlog - tabela - plačilni sistemiOddelek: Programiranje | 981 (790) | programercek |
» | php skripta za registracijo uporabnikovOddelek: Izdelava spletišč | 2098 (1679) | skorpio |
» | portal ostal, baza slaOddelek: Izdelava spletišč | 1837 (1722) | bombacina |
» | MySQL združevanje tabel..Oddelek: Programiranje | 1718 (1533) | Nemenej |