Permalänk
Medlem

MYSQL EXPIRED RECORDS

Hej igen,
Håller på att koda ett VIP Plugin till Counter-Strike Source, Men nu är det så att jag vill att dom ska tas bort automatiskt när jag trycker på en länkt Exempel
Minhemsida/expired.php
Jag har en database som heter VIP Med tabelen users, I den finns colummerna Namn, SteamID och Expired.
När dom köper vip läggs det tilll automatiskt 30 dagar framåt i formatet 02.07.12 Men jag vet inte hur jag ska få det att ta bort dom efter datumet gått ut har provat

DELETE FROM vip WHERE expired < NOW() DELETE FROM vip WHERE expired < NOW() - 30 DAYS

Har googlat i 3 dygn nu utan resultat.
får jag det att funka tänkte jag sätta upp ett cron job

Permalänk
Medlem
Skrivet av syx94:

Hej igen,
Håller på att koda ett VIP Plugin till Counter-Strike Source, Men nu är det så att jag vill att dom ska tas bort automatiskt när jag trycker på en länkt Exempel
Minhemsida/expired.php
Jag har en database som heter VIP Med tabelen users, I den finns colummerna Namn, SteamID och Expired.
När dom köper vip läggs det tilll automatiskt 30 dagar framåt i formatet 02.07.12 Men jag vet inte hur jag ska få det att ta bort dom efter datumet gått ut har provat

DELETE FROM vip WHERE expired < NOW() DELETE FROM vip WHERE expired < NOW() - 30 DAYS

Har googlat i 3 dygn nu utan resultat.
får jag det att funka tänkte jag sätta upp ett cron job

Fungerade inte ett cron job? Är du säker på att du gjorde rätt med scriptet där då?
Borde vara det som är lösningen för att du ska få bort saker automatiskt en viss tid.

Edit: Kom på att jag glömde fråga vilken datatyp du använder för expired? Skriv gärna hur PHP-scriptet ser ut som du tänker köra som cron job.

Permalänk
Medlem

Går det inte att använda if() i php ? som tar bort raden när tiden är 0 ?

Permalänk
Medlem
Skrivet av syx94:

Hej igen,
Håller på att koda ett VIP Plugin till Counter-Strike Source, Men nu är det så att jag vill att dom ska tas bort automatiskt när jag trycker på en länkt Exempel
Minhemsida/expired.php
Jag har en database som heter VIP Med tabelen users, I den finns colummerna Namn, SteamID och Expired.
När dom köper vip läggs det tilll automatiskt 30 dagar framåt i formatet 02.07.12 Men jag vet inte hur jag ska få det att ta bort dom efter datumet gått ut har provat

DELETE FROM vip WHERE expired < NOW() DELETE FROM vip WHERE expired < NOW() - 30 DAYS

Har googlat i 3 dygn nu utan resultat.
får jag det att funka tänkte jag sätta upp ett cron job

Vad är det för datatyper på kolumnerna?

Dessutom tycker jag att du borde "ta bort" på ett annat sätt. Det finns ingen mening att göra en riktig DELETE-fråga mot databasen. Låt datat vara kvar precis som det är. När du hämtar datat så borde du ta hänsyn till expired. På detta vis så slipper du ha tredjepartslösningar så som cron jobs och liknande vilket gör din tjänst mer isolerad, mindre beroende och migreringsbar till andra plattformar.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Tja,
Vet inte riktigt hur man får expired att fungera aldrig fått det att fungera :/
Så har inte en aning om hur man gör.
Är det någon som har en guide eller nåt?

Permalänk
Medlem

kan det vara så enkelt att expired inte är sparat som timestamp(14), YYYY-MM-DD HH:MM:SS, som NOW() vill ha?

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-function...
http://dev.mysql.com/doc/refman/4.1/en/timestamp-pre-4-1.html

länkar
Visa signatur

Asus UX32VD-R4002V

Permalänk
Medlem
Skrivet av syx94:

Tja,
Vet inte riktigt hur man får expired att fungera aldrig fått det att fungera :/
Så har inte en aning om hur man gör.
Är det någon som har en guide eller nåt?

Ifall du inte bryr dig om exakta tiden utan bara dagen så gör så här:
Spara expired som DATE data och använd CURRENT_DATE( ) istället för NOW().

Vill du ha med tiden också så gör så här:
Spara expired som DATETIME data och använd NOW().

Permalänk
Medlem

Tror ni det här scriptet skulle funka eller är det helt fel :P?

<?php

$link = mysql_connect('localhost', '****', '******');
if (!$link) {
die('Not connected : ' . mysql_error());
}

$db_selected = mysql_select_db('sb', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
mysql_query("DELETE FROM sm_admins WHERE expire < CURRENT_DATE();");

?>

Permalänk
Medlem

Om någon har några min över kan ni kontakta mig på
Msn: Tommy_Nyqvist94@hotmail.com
Skype: love_snobben
Steam: syx94
Behöver hjälp

Permalänk
Medlem
Skrivet av syx94:

Tror ni det här scriptet skulle funka eller är det helt fel :P?

<?php

$link = mysql_connect('localhost', '****', '******');
if (!$link) {
die('Not connected : ' . mysql_error());
}

$db_selected = mysql_select_db('sb', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
mysql_query("DELETE FROM sm_admins WHERE expire < CURRENT_DATE();");

?>

Borde det nog göra. Men du har skrivit expire här och expired i dina tidigare postar.
Du kan ju göra så här för att se om du får error från din query

mysql_query(DELETE FROM sm_admins WHERE expire < CURRENT_DATE()") or die(mysql_error());

Permalänk
Medlem

Får följande
Table 'sb.sm_admins' doesn't exist

Permalänk
Medlem
Skrivet av syx94:

Får följande
Table 'sb.sm_admins' doesn't exist

Tabellen sm_admins existerar inte.

Sen; Lagrar du tiden i databasen?

Isåfall så kan du ju bara hämta ut den datan för den specifika användaren och sen köra en if sats och sedan DELETE FROM.

Visa signatur