Autor | Zpráva | ||
---|---|---|---|
Rumburak Profil * |
#1 · Zasláno: 15. 7. 2008, 16:08:46
ahojdas dneska se mne nezbavite, tak jsem trochu pokročil.... stvořil jsem tabulku kam se při každé návštěvě ukládá datum a chtěl bych aby pokud je ten uložený datum o dvě hodiny mene nez now(1 minuta v skriptu je jen zkušební :-))tak aby se odstarnilo vse z kosiku (mam pro to sveduvody :-D), jenze tenhle skript nefunguje(resp. nemaze zbozi z kose jinak $idea['datvloz'] spravně zobrazi datum=vyzkouseno echem) a myslim ze chyba bude nekde v poměřování proměnné idea s časem now ale nevim kde vidi nekdo problem prosim???
$ide1 = mysql_query ("select datvloz from mazani"); $idea = mysql_fetch_array($ide1); if (($idea['datvloz'])<("date_sub(now(), interval '1' minute)")) { mysql_query ("delete * from kosik"); } |
||
Joker Profil |
#2 · Zasláno: 15. 7. 2008, 16:15:04 · Upravil/a: Joker
Rumburak
I u delete se dá používat podmínka WHERE: DELETE FROM kosik WHERE (date + INTERVAL 2 HOURS) < NOW() |
||
Rumburak Profil * |
#3 · Zasláno: 15. 7. 2008, 16:20:07
oki trochu jine reseni asi by znamenalo predelat resp pridat sloupec do kosiku a pozmenit skript ale vedel by nekdo jak upravit muj skript??? jinak Joker diky za ucast
|
||
Joker Profil |
#4 · Zasláno: 15. 7. 2008, 16:37:25
Rumburak
oki trochu jine reseni asi by znamenalo predelat resp pridat sloupec do kosiku Jako proč?! 1. to popsané řešení nefunguje, protože míchá dohromady syntaxi SQL a PHP. A i kdyby se to upravovalo, stejně to fungovat nebude, protože DELETE FROM kosik smaže všechny záznamy v tabulce, ne jenom ten jeden. A pokud by se upravilo i to, bude to děsně neefektivní: udělat SELECT v databázi, pak si v PHP spočítat podmínky a na jejich základě udělat v databázi řadu DELETE s jinou podmínkou, oproti udělat jeden DELETE s podmínkou v databázi. 2. Pokud v databázi máte datum vložení košíku, žádné další sloupce nejsou potřeba. Pokud ho tam nemáte... tak podle čeho jako chcete vymazávat?! |
||
Rumburak Profil * |
#5 · Zasláno: 15. 7. 2008, 16:45:01
vis ono je to tkhle v kosiku kam muzou ukladat registrovani i neregistrovani se maze zbozi automaticky po dokonceni objednavky, problem nastava v chvili kdy neregistrovany uprostred nakupu treba zavre prohlizec nebo proste opusti stranku pak zbozi zustava v kosi coz by po nejakem case bylo nemile ze:-) takze ja chci vymazat z kosse vsechno zbozi ktere tam v danouchvili (tzn. pokud na strance dve hodiny nikdo nebyl) je. Nicmene zkousim i tvuj zpusob pridal jsem sloupec datvloz do kose kam se uklada aktualni datum vlozeni zbozi a do indexu dam jednoduse skript ktery smaza vsechno zbozi starsi dvou hodin takze na tom ted makam reknu zachvili jak to dopadlo
|
||
Joker Profil |
#6 · Zasláno: 15. 7. 2008, 16:48:31
1. Bych to promazával jen pro neregistrované uživatele. Registrovaný prostě při dalším přihlášení bude mít v košíku to, co si tam naklikal předtím.
2. A podle čeho jste to chtěl vymazávat předtím? Stejná podmínka by nejspíš šla použít i v tomhle případě. |
||
Rumburak Profil * |
#7 · Zasláno: 15. 7. 2008, 16:50:41
takze tohle nefunguje mysql_query ("DELETE * FROM kosik WHERE (datvloz + INTERVAL 1 minute) < NOW()");
nevite proc?? |
||
Alphard Profil |
#8 · Zasláno: 15. 7. 2008, 16:52:36
mysql_query ("DELETE * FROM kosik WHERE (datvloz + INTERVAL 1 minute) < NOW()");
víme, ta * tam nemá co dělat |
||
Joker Profil |
#9 · Zasláno: 15. 7. 2008, 16:53:25
Rumburak
Nemá tam být ta hvězdička. DELETE FROM, ne DELETE * FROM. |
||
Rumburak Profil * |
#10 · Zasláno: 15. 7. 2008, 16:54:03
ajo to jsem ale.... diky kluci vse funkcni
|
||
Časová prodleva: 16 let
|
0