» »

Ocenjevanje s PHP-jem

Ocenjevanje s PHP-jem

kunigas ::

Saril sem po PHP manualu in iskal moznost,
ki sem jo verjetno spregledal, zato se sedaj
obracam na vse dobrodusne ljudi, da mi povsete ...

... kako bi s PHP-jem naredil glasovalno napravico,
ki bi v eno datoteko shranjevala tocke za npr.
posamezno slikco, ki bi jo nakljucni obiskovalec
pac ocenil ...

Predvsem me muci vecanje vrednosti spremenljivke.
Npr. v datoteki ocena.php bi po glasovanju obiskovalca
spremenljivki "$a_" povecal vrednost za "+1" ...
Hkrati pa ohranil vrednosti ostalih spremenljivk,
ki so shranjene v tej datoteki ...

Hvala za cas in trud

Kunigas
Pax!

Quod scripsi, scripsi.
  • spremenilo: kunigas ()

Reso ::

Za take stvari se ponavadi uporablja baza podatkov, kjer je vse to zelo enostavno.

Če hočeš uporabljati dokument pa imaš lahko naprimer v tem dokumentu slike zapisane takole:

ime_prve_slike.jpg;0
ime_druge_slike.jpg;3
ime_tretje_slike.jpg;7
ime_cetrte_slike.jpg;2

Potem samo preskakujes vrstico za vrstico po dokumentu in ko najdes pravo ime slike shranis vrednost za ; v spremenljivko, pristejes 1 in prepises vrednost samo na tej vrstici.

darh ::

Naprej nekaj struktur in funkcij ki si jih lahko ogledaš v manualu:
- Arrays
- fopen()
- serialize() in unserialize().

Zdaj pa pogumno v boj.

pustimo shranjevanje rezultatov v PHP datoteki -- nima pomena -- raje dajmo ocene.txt. To datoteko odpreš s pomočjo funkcije fopen().
Pogledaš če vsebuje karkoli -- če vsebuje, nad vsebino uporabiš funkcijo unserialize(). Dobiš array. Struktura naj bo taka
$array['nekaj kar je za ocenit']
$array['nekaj drugega za ocenit']
....

Tako si prebral podatke o ocenah.

Hočeš prištet oceno?
$array['nekaj kar je za ocenit']++;

nato pa z funckijo serialize() spraviš ta $array v nek bolj "shranjiv" format in ponovno z funkcijo fopen() shraniš nove podatke v datoteko ocene.txt.

Simpl ane? :)



Rešitev, ki jo je podal Reso, je ok, samo imaš več možnosti, da popraviš kaj napačnega.
Excuses are useless! Results are priceless!

Zgodovina sprememb…

  • spremenil: darh ()

upirna ::

lahko uporabiš tudi mysql

darh ::

upirna, itak... tud z šleparjem se da it na morje.
Excuses are useless! Results are priceless!

Zgodovina sprememb…

  • spremenil: darh ()

upirna ::

če poznaš vsaj malo mySQL (jaz ga res ne obvladam) se da to veliko lažje naredit.

kunigas ::

:)

No, jz ne znam MySql-a prav nic.
V bistvu bi se ga zelel naucit
sam bi bilo verjetno najbolj uspesno, da bi
mi kdo to pokazal al pa zlo razumljivo razlozil,
ker ... niti ne vem, kako naj bi si to rec
predstavljal ...

bom pa skusal najdt resitev s ze povedanim,

Hvala za zdaj!

Kunigas
Pax!

Quod scripsi, scripsi.

upirna ::

verjetno si si že instaliral apache, mysql in php. Instaliraj si tudi phpmyadmin, saj pol vse rata ful bl enostavn.

darh ::

upirna, nisi čisto dojel mojega komentarja zgorej, aneda?
Excuses are useless! Results are priceless!

snow ::

Če maš mysql gor in se ti ni treba zafrkavat z nastavitvami tega.. lahko uporabiš mysql. drugače se drži datotek :)

šleper na morje :)) lahko gremo s traktorjem?
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

sopex ::

oki tko .txt in mysql mata svoje prednosti...
mysql-ova slabost je recmo to, da se lahko sesuje, drugač je pa bl u easy za narest..
prednost txt-ja je pa to, da se recmo sesuje samo takrat, ko se res vse strežnik sesuje, vendar če se vse zbriše dol z strežnika, ostaneš brez rezultatov ankete in se vse začne znova (kar se pri mysql-u malokrat zgodi ali nikoli)

tko da je odvisn kakšno voting listo hočš... zanesljivo a staro ali hitro in novo
drugač pa dobiš velik že izdelanih script.. če se ti pa ne da zajebavat z kodo, pa lepo dol potegneš JAVA programček in ga vključič v stran :) sam ponavad je tm tud kšna reklama, tko da če te to ne mot je uredu

ma pa že skor vsaka dobra stran voting (poll), tko da je to uredu oziroma nujno da vključiš v spletno stran

kunigas ::

Java mi deluje vredu, pa vendar ne bi rad
preveč mešal različnih jezikov med sabo ...
Na eni strani, k sm jo naredu, so se stvari
začele kr tepst med sabo ... tko da bi rajš kar
pri PHP-ju ostal ...

Hvala vseen!

Kunigas
Pax!

Quod scripsi, scripsi.

sopex ::

ja veleda....če delaš page v php-ju pol je pa itak bolš da kr pr tem ostaneš...
je pa za tiste k uporablajo HTML najboljša rešitev JAVA, za tiste ki pa uporabljajo php pa naj si pogledajo TUKAJ

tuki mate use opisan, kako je treba nardit, tko da nebi smel bit več problemov

kunigas ::

Torej, jz sm se nekaj časa mučil z omenjenim in se sam skušal prikopati do rešitve, a je - očino - nisem našel. Vse kar sem lahko naredil (po tem, ko sem prebral vsa navodila v MANUALU in ugotovil, da se iz zapisanega prav nič uporabnega ne najde), da se mi je vrednost k obstoječi spremenljivki v datoteki ocene.php povečala za 1 in v celoti prepisala v ocene.php le cifra 2 ali pa na koncu znaka ?>

Je pa res, da verjetno rabim met tole v ocene.php in ne ocene.txt, ker vrednosti, ki so spravljene pod spremenljivkami kličem pod slikce, ki se prikažejo na strani, tako da ima obiskovalec možnost videti trenutno stanje.

ocene.php izgledajo takole:

$a_ = "1";
$b_ = "3";
$c_ = "4";
$d_ = "5";

(seveda med oznakami za php)

Pri čemer so a, b, c ... imena fotografij ...

Ostalo, kar mi je uspel spisat pa je, kot že rečeno, neuporabno.

Kunigas
Pax!

Quod scripsi, scripsi.

BigWhale ::

Banzai!

Listen to the xbite...

Za eno bebavo ocenjevanje slik delat interface do SQLa je tako kot ce bi z motorko obrezoval brsticni ohrovt...

V txt file se pa glasove spravi v priblizno desetih vrsticah kode... skupaj s komentarji... ;>

kunigas ::

V txt file se pa glasove spravi v priblizno desetih vrsticah kode... skupaj s komentarji...


O tem niti ne dvomim. Podobno, kot se da pridt iz Kranja v LJ zelo hitro z avionom, če ga pa ne znaš pilotirat moraš it pa peš.

Resnici na ljubo ne znam pilotirat ne aviona niti ne morem trditi da sem kaksen mojster PHP-ja, temvec le uporabnik, ki ve, kaj želi in se je pripravljen za kaksno reč tud kej potrudit - celo koga vprašat. Zato me v bistvu ne zanima, kaj se s čim da narest, ker se da konec koncev pridt v LJ tud z vlakom in avtom pa bicikl ... :))

Štos je samo v tem, da naj mi nekdo tako razloži teh deset vrstic, da bom zakapiral oz. naredil in potem zakapiral ... Če pa slučajno nisi preveč vešč v razlagi, je pa najbolj, da mi rešiš situacijo, pa si bom sam ogledal in razložil tisto, česar tebi ni uspelo ...

Kunigas
Pax!

Quod scripsi, scripsi.

Zgodovina sprememb…

  • spremenilo: kunigas ()

darh ::

> Štos je samo v tem, da naj mi
> nekdo tako razloži teh deset vrstic,
> da bom zakapiral oz. naredil in potem zakapiral ...

Ti moj prvi odgovor ni bil dovolj?
Excuses are useless! Results are priceless!

upirna ::

Če ne znaš tega naredit, pejt na hotscripts.com pa si najdi eno skripto, ki ti bo odgovoarjala.

kunigas ::

@Xbite
Očino ne ...

@upirna
Če bi hotel link, bi vprašal po njem ... raje reci, da ne znaš ...

Kunigas
Pax!

Quod scripsi, scripsi.

BigWhale ::

> Če bi hotel link, bi vprašal po njem ... raje
> reci, da ne znaš ...

Taka prepotentnost si sploh ne zasluzi odgovora...

Ce ti tisto, kar ti je xbite povedal ni dovolj, potem prodaj racunalnik in si kupi album za znamke, pa jih zbiraj... (or whatever)

Drugace pa na googlu najdes odgovor na vse, skoraj dobesedno...

Bleeh...

kunigas ::

:))

@BigWhale
Veš kaj je zanimivo ...
Da bi na enak način, kot bi lahko jaz prodal svoje računalo tud zaprli tale slo-tehc, če se ne da nobenemu delit svojega znanja na razumljiv način ... Sej se je lahko delat pametnega, ko stvar obvladaš. Še lažje pa se je delat arogantnega, češ, kakšni bebci sprašujejo po znanju in vedenju ... :)) Mi je pa prišla misel nekega znanega človeka na misel, ko se je ubadal s podobnimi osebami: "Ključe imate in ljudem branite vstopiti, sami pa nočete."

Življenje je kratko in učimo se na tujih napakah, in če mi bo kdo začel trdit, da je to v dobro znanosti, da mora vsak znova odkrivat že odkrito, potem ... potem pač ne veš, kaj je to znanost.

Je pa vsekakor zanimiv fenomen, kako ljudje nočejo oddati svojega znanja. Konec koncev so jim še nedavno tega vtepali v glavo: "Janez, ni važno al si reven al bogat, znanje je tisto, ki ti ga nihče ne more vzeti..." In potem se je Janez začel učit ... In zakaj bi se potem trudil na nekem FORUMU in oddajal svoje znanje ... in drugim omogočal, da bi postali v tem njemu podobni ...

Kunigas
Pax!

Quod scripsi, scripsi.

Gandalfar ::

kunigas: ne vem no.. kaj ti ni bilo jasno pri prvem xbitovem postu?

kunigas ::

"po tem, ko sem prebral vsa navodila v MANUALU in ugotovil, da se iz zapisanega prav nič uporabnega ne najde"


Mi je prav žal, ampak men ni kej dost jasno, kaj so v manualu hotli povedat ... ko pa sem videl še primer mi je blo pa takoj adijo ...

mi ni prav nič jasno, kam je treba kej vpisat ... nrp. ime datoteke, ime spremenljivke te in one ... 8-O
Pr PHP-ju je tko, da moraš ravno vsako funkcijo posebej spoznavat in jo sčasoma lahko obvladaš ...

Kunigas
Pax!

Quod scripsi, scripsi.

kunigas ::

Da ne bo še kdo mislu, da nism nč naredu ...

- - -
$to = $dir.'/ocena.php';

/* kle vmes pride še en kup kode za galerijo, ki dela čist ql.
$file so pa vse slikce v neki mapi
in tole je še vedno znotraj zanke, ki ponavlja funkcijo pod vsako
slikco */

require $to;

// tule mi ni čist jasno, kaj naj bi bilo v oklepajih ... :(
$file = unserialize ($file);

// $a_ je ocena slikce, spravljena v ocena.php - torej v $to
$a_ = $a_ + 1;

// podobno kot pri unserialize ... :(
$a_ = serialize ($a_);

// potem pa naj bi še shranil ... pa mi vpiše na konec za "?>"
$fp = fopen($to, "a");
fputs($fp, $file = $a_);
fclose($fp);

- - -

Sam, sej sm reku - če mi ni kej dost jasn, pol bo tud tisto, kar naj bi naredu, daleč od resnice.

Kunigas
Pax!

Quod scripsi, scripsi.

kunigas ::

Vpisuje mi na sam konec $to in sicer i:2,

Kunigas
Pax!

Quod scripsi, scripsi.

romci ::

@kunigas:

Ce ti je serialize prevec za dojemat, poskusi z explode() in implode().

Samo bo treba mal spremenit tok razmisljanja - ne bos bral iz fajla direkt spremenljivk, ampak kot je blo ze nekje zgoraj omenjeno, recimo imena slik.

Pa recimo da mas v ocene.txt spravljeno v naslednjem formatu:

slika1;4;slika2;2;slika3;5

koraki so:
1) preberes cel file v neko spremenljivko ($ocene_txt) HINT: fread()
2) z list($slika,$ocena) = explode(";",$ocene_txt) dobis array slik in ocen
3) pri doticni sliki popravis oceno
4) z implode dobis nazaj zgornji format s podpicji
5) vse skupaj zapises nazaj v ocene.txt HINT: fwrite()

LP,
Roman
-- not all those who wander are lost...

BigWhale ::

> Je pa vsekakor zanimiv fenomen, kako ljudje nočejo oddati svojega
> znanja.

Vsekakor meni ne mores reci, da nocem oddati svojega znanja... ... prej nasprotno.

Je pa razlika med podajanjem znanja in ujckanjem... Tisto kar ti je napisal xbite je vec kot dovolj za to kar bi ti rad naredil. Ce si sam toliko len, da tudi tega ne mores pregledat in se mal pomatrat, potem je se tisto kar ti je povedal prevec...

To give a fish or to teach how to fish? :)

Samo to je pomembno... Ne pricakuj od ljudi, da bodo delali stvari namesto tebe... ... poleg tega, ti je nekdo rekel, da si pejdi na web pogledat, pa se ti tudi to ni dalo... Hotel si kodo... :)

b ::

Tole me skoraj spominja na enega pacienta, ki je delal v eni firmi kot web "programer".

Za vsako stvar, ki je kao ni znal narediti, je prisel k meni, in hotel, da mu jo scodam v PHP-ju.

Pa to clovek naredi enkrat, pa naredi dvakrat, pol ga mas pa dovolj. Od takrat naprej sem mu povedal samo se katera funkcija (ja, ponavadi so bile builtin) resi njegov problem. Pa to kmalu spet ni bilo dovolj in je hotel kodo. Kodo sem pred njim spisal (navadno tja do 10 vrst), mu povedal kako deluje in jo pred njim pobrisal. In potem je cudezno nehal hodit k meni, ker naenkrat ni vec bil zazeljen v svoji sluzbici.

No wonder, s takim attitudom in lenobo.

Zgodovina sprememb…

  • spremenilo: b ()

kunigas ::

@BigWhale
"Je pa razlika med podajanjem znanja in ujckanjem... "
Definitivno - nekako takšna kot med dnevom in nočjo - a ne da ...
S tem, da se medtem, ko je pri nas tema, na drugem koncu Zelmlje sončijo.

Sej razumem, da človeki nimamo časa se še s tujimi problemi ubadat, ampak to niti ni poanta vsega kar pišem in vam skušam dopovedat. Težava je v tem, ker smo/ste "računalničarji" čist preveč zagledani v neko absolutnost, življenje in odnosi med vsem in vsakim pa so še najbolj relativna zadeva, kar jih poznamo ... Verjetno v še bolj relativnem pomenu, kot je Einstein mislil ... :)

Kunigas

Pax!
Pax!

Quod scripsi, scripsi.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PHP login skript

Oddelek: Izdelava spletišč
282810 (1396) Lion29
»

[php, mysql] sortiranje izpisa iz baze

Oddelek: Izdelava spletišč
262656 (2175) Binji
»

problem z phpjem

Oddelek: Izdelava spletišč
304252 (3665) snow
»

PHP problem z branjem iz datoteke.

Oddelek: Programiranje
81386 (1305) [MYTiX]
»

Html problemček

Oddelek: Izdelava spletišč
171468 (1309) Ziga Dolhar

Več podobnih tem