Šta je novo?

PHP + MySQL ProductOfTheDay

tarzan1321

Čuven
Učlanjen(a)
12.06.2004
Poruke
326
Poena
619
E ovako. Imam sledeci issue tj. problemcic 🙂

Imam tabelu u sql bazi sa odredjenim proizvodima. Na web strani treba da mi se ispisuje jedan proizvod i to svakog dana razliciti. Znaci ako imam 10 proizvoda, i prvi se ispise u ponedeljak, sledeci put da se ispise u sredu, pa sledeci put kad na koji vec dan padne. I da se sve to pravilno namesti ako se doda ili obrise koji proizvod. Takodje bi bilo pozeljno da se sve to menja u odredjeno vreme, recimo u 05h ujutru. Ako neko ima resenje nek se javi pls.
 
Ovo nije problemcic nego poslic i za tako nesto se obicno placa 🙂
 
Pa ako znas malo nesto o programiranju resis.....
Jel si sam odradio ostalo?
 
Ovo je prilicno prosto, i moze se resiti na dosta nacina. Na primer jedan od nacina je da napravis novu tabelu u mysql bazi, gde ces imati sifru proizvoda, i datum, koji oznacava kada proizvod treba da se pojavi. Bukvalno kao prioritetni red. Kod je manje vise jednostavan, kada generises stranicu, izvlacis proizvod koji treba da se pokaze tog datuma. isto napravis skriptu da kada neki proizvod ima datum koji je prosao, njemu dodeli sledeci slobodan.
Eto to bi bila logika. Opet pominjem da je to samo jedan od nacina da se odradi.
 
Mozda cak i jednostavnije da imas kolonu u tabeli proizvoda koja ce biti bool, sa tim da ce samo 1 proizvod u jedinici vremena imati true, svi ostali false. U 5 sati npr. ti uzmes i prebacis true na sledeci proizvod a za sve ostale kazes false.
 
To se onda mora rucno raditi. Posto mora negde da ima tih n proizvoda koji ce biti proizvodi dana.
 
Ovo nije problemcic nego poslic i za tako nesto se obicno placa 🙂

Ovaj put moram da se složim. Više puta smo ovde jedni drugima pomgali za uglavnom non-profit stvarčice i probleme, bio je i poneki problem koji je stvarno bio problem, a radilo se o poslovnom sajtu, ali ovo na ovakav način ne spada u tu kategoriju.
nnnn ti je dao predlog, lоgički algoritam po kome možeš da rešiš svoj problem, na jedan od načina.

Možda je bolje da ovo postaviš u sekciju poslovi, među oglasima.

Rad PHP programera je $15-$40 na sat.
 
To se onda mora rucno raditi. Posto mora negde da ima tih n proizvoda koji ce biti proizvodi dana.

Zasto mora rucno, sve sto treba je da napravis proces koji ce u odredjeno vreme da prebaci na true sledeci red, a ostale da stavi na false ili mozda jos bolje ne ostale nego prethodni red. Mislim da ti za to ne treba vise od 20 linija koda.
 
Hvala na predlozima.
Nije problem u kodiranju, vecu blokadi mozga 🙂. Nikako mi nije padala nijedna logika na pamet, kako bi to moglo da se odradi. Probacu sad ove predloge sto ste mi dali, mada mislim da ce i dalje ostati problem ukoliko se desi da se web strana sa tom skriptom ne otvori 24+h. Onda ce se staviti za sledeci proizvod koji je bio na redu juce, a ne danas.
Nije problem. Ako ne bude moglo sa ovim idejama, ja cu ponovo jaukati ovde 🙂
 
mada mislim da ce i dalje ostati problem ukoliko se desi da se web strana sa tom skriptom ne otvori 24+h. Onda ce se staviti za sledeci proizvod koji je bio na redu juce, a ne danas.
Koristi cron job. Napravi jedan fajl koji ce server u tacno odredjenom trenutku pokretati svaki dan i stvar je rijesena.

Mozes koristiti ovaj primjer od @nnnn sa novom tabelom, a mozes napraviti jednu novu kolonu u postojecoj tabeli(bool) gdje ces imati jedan true za item koji se prikazuje i false na ostalim itemima(s tim da moras imati i neki order value, bilo to id itema il' neka posebna kolona sa order brojem).
 
Poslednja izmena:
Hvala puno na savetima.
Uspeo sam da resis issue na sledece nacin:

Prvo sam napravio novu tabelu u bazi koja je sadrzala number_reached i date_modified polja. Prilikom otvaranja strane, prvo se proverava da li je date_modified razlicito od today+5h, pa ako jeste onda se provera da li je number_reached veci od count(proizvoda). Ako jeste veci onda se numbeR_reached postavi na 1, a ako nije onda ide +1. Posle toga se samo uradi query na tabelom products i izvadi se onaj proizvod ciji je ID jednak number_reached.

Takodje sam morao da namestim da svi ID budu sekvecijalni od 1 pa nadalje, ubacivanjem drop,add table trigera na ON DELETE.

Mozda nije najelegantnije resenje, ali radi 🙂
 
Nazad
Vrh Dno