Autor Zpráva
Rumburak
Profil *
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
Rumburak
I u delete se dá používat podmínka WHERE:

DELETE FROM kosik WHERE (date + INTERVAL 2 HOURS) < NOW()
Rumburak
Profil *
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
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 *
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
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 *
takze tohle nefunguje mysql_query ("DELETE * FROM kosik WHERE (datvloz + INTERVAL 1 minute) < NOW()");
nevite proc??
Alphard
Profil
mysql_query ("DELETE * FROM kosik WHERE (datvloz + INTERVAL 1 minute) < NOW()");
víme, ta * tam nemá co dělat
Joker
Profil
Rumburak
Nemá tam být ta hvězdička. DELETE FROM, ne DELETE * FROM.
Rumburak
Profil *
ajo to jsem ale.... diky kluci vse funkcni

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0