Pitäs saada sellanen ostoskori tehtyä, et ku lisää koriin linkistä painaa ni sivun alareunaan lisättän tuote, en oikeen saa millän päähän miten saisin sen tehtyy sessioneilla tai kekseillä tai ees php taulukoilla, pitäs kutienki tehä ilman mysqllää... saisko jonkun koodivinkin, php:llä pitäs saad se aikaan?
Sessionillahan sen saa hyvin. Ensin kannattaa asettaa sessiot päälle session_start() funktiolla joka sivun alussa (ennen html koodia). Sitten vain laitat sessioniin tietoa esim. näin:
<?php $_SESSION["tuoteID"] = 123; // Lukeminen tapahtuu näin: echo "Tuotteen ID:" . $_SESSION["tuoteID"] . "<br>"; ?>
Tuo ylläoleva tosin tukee vain yhtä tuotetta kerrallaan. Kotiläksynä monen tuotteen tuki :)
Ilmasena vinkkinä suosittelen session+explode
oppaat->php->funktiot on ainaki
kiitos profiili, mut yritän tehä ton sessionilla tai kekseillä, lazu, sain kyl ton tehtyä jo itekki, mut en keksi miten sais monta tuotetta... :/
Tee vaikka tuotteet -nimiseen sessioniin array mihin laitat nuo tuotteen idn ja määrän. Sekavasti selitetty mut kuitenkin.. eli
$_SESSION['ostoskori']['tähän tuotteen id'] = "tähän tuotteen määrä";
sit vaan tulostelet nuo tuotteet tuolta. tai lisäät tietystä tai poistat. ihan miten vaan. kuitenkin. toivottavasti tajustit idean. en osaa selittää.
Itselläni keskeneräisessä ostoskoripurkassani sessionissa on kamaa tyyliin
määrä~id|määrä~id #esim 3~8|1~39
Sitten explode-purkalla sörkitään erilleen ensin |-merkkien kohdalla, sitten tildejen kohdalta ja tehdään tarvittavat toimenpiteet.
EDIT: Ihan turha tehdä ostoskoria ilman mysliä...
Kun kerran kieli tarjoaa arrayt, kannattaa niitä myös käyttää... eli suotta moisia explode-kikkailuja.
Olga kirjoitti:
Kun kerran kieli tarjoaa arrayt, kannattaa niitä myös käyttää... eli suotta moisia explode-kikkailuja.
Kyllähän ne taulukot ovat viisaampia, mutta oppiipahan samalla merkkijonofunktiota, tee vaikka molemmalla tavalla niin oppii :P
Profiili kirjoitti:
Ilmasena vinkkinä suosittelen session+explode
jep, jep, kokeilen näitä. kiitos, katotaan onnistunko :D Kieltämättä todella ärsyttävää tehdä ilman mysliä, ku sillä sen sais niin paljon helpommin... :/
En nyt oikein ymmärrä miten se MySQL helpottaa ostoskorin tekoa. Tietty jos jonkun oman istuntosysteemin meinaat rakentaa, niin sitten ehkä. Mutta kun PHP:n oma istuntojärjestelmä on varsin pätevä, niin miksi keksiä pyörää uudelleen? Onhan siinä tietysti omat puutteensa, mutta ostoskorin tekemiseen se on ihan omiaan. Tuotetiedothan voi ihan hyvin säilyttää tekstitiedostoissa.
Olga: MySQL:stä on helpompi hakea tietoja, esim tuottet. Tiedostoilla joutuu kehittämään oman tiedostoformaatin joka sopii tarkoitukseen ja sitten vielä tehdä funktiot jotka avaa/sulkee/lukee tiedoston ja lisää/poistaa/muuttaa tiedoston sisältämiä tietoja. MySQL:llä selviää kolmella funktiolla ja valmiilla komennoilla.
Niin ja MySQL on nopeampi tapa.
Tais Olga tarkottaa vaan tota et ne ostoskorin sisältö kannattaa tallentaa sessioniin. eikä mysliin.. puhuitte ehkä eri asioista. Noh ihan sama!
Lazu kirjoitti:
Olga: MySQL:stä on helpompi hakea tietoja, esim tuottet. Tiedostoilla joutuu kehittämään oman tiedostoformaatin joka sopii tarkoitukseen ja sitten vielä tehdä funktiot jotka avaa/sulkee/lukee tiedoston ja lisää/poistaa/muuttaa tiedoston sisältämiä tietoja. MySQL:llä selviää kolmella funktiolla ja valmiilla komennoilla.
Niin ja MySQL on nopeampi tapa.
Juu, tiedän kyllä hyvin MySQL:n edut verrattuna tiedostoihin. Tuotetietojen säilöminen tiedostoon ei kuitenkaan vaadi yhtään sen kummempaa koodinvääntöä kuin vastaava tietokannoilla ja formaatiksi kelpaa hyvin vaikka tuotteet riveittäin muodossa id;tuote;hinta jne. Jos tiedostoon tehtäisiin muutoksia useita kertoja sekunnissa, olisi tietysti tekstitietokanta varsin epävarma ratkaisu tyhjenemisen uhan takia.
Ja Abina oli ihan oikeassa, juuri sitä ajoin takaa... :)
Mulle tuli tällänen mieleen, et entä jos pistän ny sit ostoskorin johonki tiedostoon ja sit ku siel on enemmän porukkaa ja ne latoo kamaa ni eikös se kuitenki mee samaan tiedostoon? et eiks se voi mennä sekasi?
Asiasta toiseen, mä kokeilin tallentaa mun tavarat sessioon, mut mien sit niitten tulostus tapahtuu? tein getillä sen sillei et se lähettää sen id:n ku painaa linkkiä ja sit tulostan sen ostoskiriin ja yritän sit painaa toista tuotetta, ni se tulostaa sit vaan sen toisen tuotteen... tietenki ku se lataa sivun uudestaan, mut miten saisin sen sit tulostaa toisen siihen perään... (luulen et mul on aika hölmö koodirakenne, mut antakaas viel jotain koodivinkkiä, jos jaksatte) toivottavasti joku otti selvää.. =)
1. flock()
2. looppaa forilla, vai :D
<select name="kori"> <?php for($i = 0; $i<=count($_SESSION["tuotteet"]);$i++){ $tuote = haekannasta($_SESSION["tuotteet"][$i]); echo '<option value="tuote_'.$i.'">'.$tuote.'</option>'; } ?> </select>
Tämä on pseudoa, eikä läheskään täydellinen.
WEEE!!! Kiitos kaikille, sain sen toimii =D eipä mikään hirveen vaikee ollu, mut ei sitä vaan aina tajua :D
BTW: Tuo Lazun 26.4. kirjoittama viesti sessioneista on muuten paras johdatus sessioihin, jonka voin koskaan kuvitella. Koko idea aukesi tämmöiselle PHP-vasta-alkajalle kolmella rivillä. :)
Lähdin itsekkin sessioneissa liikkeelle hyvin pitkälti samanlaisesta ohjelmanpätkästä :)
Voisinpa muuten kirjoittaa jonkinlaisen oppaan sessionin käytöstä. Se tuntuu olevan vaikea aihe ja minulta on kysytty tuota usein.. Enkä nyt pikaisen etsimisen jälkeen nähnyt yhtään suomenkielistä session opasta.
Edit: Jaa no.. onhan se tuossa putkan php oppaassa osa 7:ssa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.