Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

mysql date og updates

Af Monsterbruger bertleren | 03-12-2012 11:10 | 1211 visninger | 16 svar, hop til seneste
hej min tittel er måske lidt dårlig... men jeg mangler en funktion som fortæller mysql til at ændre variablen premium til 0 hvis variablen DATE = datoen idag. hvad kan jeg gøre? og hvis i skal bruge nogle info om sider eller lign. så skriv. vh joachim
--
#1
-={Squize}=-
Semi Supporter
03-12-2012 11:15

Rapporter til Admin
Hej, mysql kan ikke ændre dine variabler. Men du har en mysql funktion der hedder CURDATE() som du måske kan bruge ?
--
#2
bertleren
Monsterbruger
03-12-2012 11:19

Rapporter til Admin
jeg har allerede indsat en dato i feltet "tid(hvilket er min dato markør)" ved hjælp af CURDATE() + INTERVAL 1 MONTH men det virker som det skal... det jeg egntlig skal bruge er en php funktion der ændre feltet "premium" til 0 hvis DATOEN(den givne dato den dag)= "tid". men samtidig skal den også ændre premium til 0 hvis DATOEN er efter det tidåunkt der bliver logget ind.
--
#3
-={Squize}=-
Semi Supporter
03-12-2012 11:24

Rapporter til Admin
Jeg ville nok bruge en timestamp i stedet, evt. uden tidspunkt (0'er til sidst), da du så meget nemt kan lave en <= funktion på dit svar fra mysql mod din variabel i php.
--
#4
bertleren
Monsterbruger
03-12-2012 11:46

Rapporter til Admin
ok så en timestamp... kan du eventuelt hjælpe lidt med funktionen?
--
#5
SteffanS
Semi Supporter
03-12-2012 11:53

Rapporter til Admin
#0 Tror ikke jeg helt har forstået dette rigtigt, har et par spørgsmål: 1. Hvordan vil du have dette skal ske? altså, fer det MySQL serveren der skal tjekke hver dag om der er nogen som har en dato >= idag ? eller vil du have at når DU køre et php script (f.eks en hjemmeside) så skal den gøre det for alle dine rows ? 2. Hvad hedder feltet der indeholder dit timestamp/dato 3. Er "premium" feltet endten 1 eller 0 alt efter om de har premium ? 4. Det du vil er at tjekke om dato'en i dit dato felt er højere eller lig med dags dato, og hvis det er true skal "premium" feltet ændres til 0 ?
--
Kæmpe oprydnings salg: http://salg.ssdata.dk[...]
#6
bertleren
Monsterbruger
03-12-2012 12:08

Rapporter til Admin
1. hver gang en person logger ind tjekker den om datoen er over den det som feltet "tid" har indkodet, som passer til SESSION['id'] 2. feltet hedder "tid" og er lige nu i en MyISAM. typen er DATE 3. premium feltet er 0 hvis de ikke er aktiveret og 1 hvis de er aktiveret (o=inaktiv... 1=aktiv) 4. det er helt rigtigt. hvis datoen er lig eller over skal den ændre feltet premium til 0. ekstra: feltet "tid" er sat til auto 00-00-0000. ekstra: lige nu bruger jeg (som sagt tidligere) CURDATE() + INTERVAL 1 MONTH til at lægge datoen for premium købet.
--
#7
bertleren
Monsterbruger
03-12-2012 12:42

Rapporter til Admin
skriv hvis i skal bruge filer...
--
#8
SteffanS
Semi Supporter
03-12-2012 12:43

Rapporter til Admin
#6 aha Først skal du hente tid feltet du vil tjekke på fra din database, og lægge det i f.eks $hentettidVar. derefter skal du convertere det til unix tid, for at kunne sammenligne via strtotime(). Noget i stil med dette: $hentettidVar = ; $unixTid = strtotime($hentettidVar); //er krævet for at kunne sammenligne tiden med en anden tid. $unixTidNow = strtotime(date("d-m-Y")); //igen, er krævet for at kunne sammenligne. if(($hentettidVar == "00-00-000") || ($unixTid
--
Kæmpe oprydnings salg: http://salg.ssdata.dk[...]
#9
bertleren
Monsterbruger
03-12-2012 14:30

Rapporter til Admin
hej tak... jeg kan ikke helt se hvornår den kalder til faltet "tid" ??
--
#10
G&#230;sten
Gæst
03-12-2012 15:10

Rapporter til Admin
Er det ikke nemmere bare at sætte premium til at være en Datetime og så bare tjekke om den er udløbet eller ej?
--
Gæstebruger, opret dit eget login og få din egen signatur.
#11
bertleren
Monsterbruger
03-12-2012 15:16

Rapporter til Admin
nej fordi premium giver adgang til andre ting... og derfor holder jeg det i en 0 eller 1 form
--
#12
G&#230;sten
Gæst
03-12-2012 15:29

Rapporter til Admin
#11 Det vil det jo også være hvis det er en dato. Det vil fungere på samme måde som det andet du er i gang med at lave, blot mere simpelt i stedet for at opdatere premium.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#13
SteffanS
Semi Supporter
03-12-2012 15:58

Rapporter til Admin
#9 Det skal du selv hente og lægge ned i variablen $hentettidVar (ligesom du sikkert også gør andre steder i dit script) derfra kan du tilpasse det jeg har skrevet. Det jeg har skrevet er ikke en 100% løsning, men den vej du skal gå og tilpasse det til det du bruger. Det er meningen jeg vil hjælpe dig, ikke give dig løsningen, for så får du jo bare problemet næste gang igen :)
--
Kæmpe oprydnings salg: http://salg.ssdata.dk[...]
#14
bertleren
Monsterbruger
03-12-2012 16:50

Rapporter til Admin
det er næsten ligesom skolen... men tak... jeg tror godt jeg kan finde ud af resten.
--
#15
bertleren
Monsterbruger
04-12-2012 11:48

Rapporter til Admin
hej jeg har nu omskrevet den til at se sådan her ud... er der nogen der kan se hvad der er galt... http://pastebin.com[...] og jeg bruger en PDO til at connecte til databasen == $iws_db jeg fåe fejlen:: Warning: strtotime() expects parameter 1 to be string, object given in /var/www/nodebook.dk/public_html/dbase/connect.php on line 33 inde i mit index script ser min function sådan her ud $tid = tid($_SESSION['id']);
--
#16
bertleren
Monsterbruger
04-12-2012 12:16

Rapporter til Admin
når ja og linje 33 som den kalder fejl på er den her --->$unixTid = strtotime($hentettidVar); og jeg tror fejlen må ligge her(linje 32): --->$hentettidVar = $iws_db->query("SELECT tid FROM iws_customers WHERE id = '".$bruger_id."'"); pastebin= http://pastebin.com[...]
--

Opret svar til indlægget: mysql date og updates

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning