Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 3.938 pregleda

Najnovija ↓

Pomoc: select count(datum) 17.12.2012. u 00:43 · pre 168 meseci #1
Treba mi malo pomoci oko mysql, radi se o formularu za narucivanje, ovako:

kada korisnik izabere datum pa onda vreme skripta treba da proveri u bazi koliko ima porudzbina za taj isti datum, isto vreme, i 30 min kasnije i 30 min ranije, znaci treba mi COUNT za vreme koje korisniki unese +- 30min

za tacan datum i vreme bi bilo ovako:

Code:

SELECT COUNT(datum)
FROM porudzbine
WHERE datum = '{datum}' and vreme = '{vreme}'";


{datum} i {vreme} je polje u formularu

kako da napravim da mi izracuna COUNT za +- 30min od vreme koje korisnik ubaci {vreme}?

Hvala unapred
Re: Pomoc: select count(datum) 17.12.2012. u 10:54 · pre 168 meseci #2
zasto datum i vreme drzis odvojeno?

http://dev.mysql.com/doc/refma...n/date-and-time-functions.html

select count(*) from t1 WHERE datetimepolje BETWEEN setovandatum - interval 30 minutes AND setovandatum + interval 30 minutes;

tako nemas problem oko ponoci, mozes da imas where datum = setovandatum and time between vreme - interval 30 imnutes and vreme + interval 30 minutes ali ovde imas problem oko ponoci tako da to ne valja, ako bas hoces da ih drzis odvojeno onda ih prvo spojis pa napravis datetime pa onda kako sam ti rekao na pocetku, ali realno nemas razloga da to drzis u dva polja
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Pomoc: select count(datum) 17.12.2012. u 14:26 · pre 168 meseci #4
Na zalost datum i vreme su odvojeno u bazi, probao sam ovako nesto ali opet ne ide, uvek mi izbaci 0:

Code:
$check_sql = "SELECT COUNT(*)"
   . " FROM bestellungen"
       . " WHERE abholdatum = '2012-02-03' AND abholzeit BETWEEN '17:30:00' - INTERVAL 30 MINUTE AND '17:30:00' + INTERVAL 30 MINUTE";

sc_lookup(rs, $check_sql);

if (isset({rs[0][0]}))     // Row found
{
    {test} = {rs[0][0]};
}
        else     // No row found
{
            {test} = '0';
}
$test = {test};
echo "$test";
Re: Pomoc: select count(datum) 17.12.2012. u 15:12 · pre 168 meseci #5
zaboravih, ne moze INTERVAL na TIME, moze samo na DATETIME .. jbg losa ti je ideja da drzis to odvojeno .. bas losa ..

uradi TIME_TO_SEC()

WHERE abholdatum = '2012-02-03' AND abholzeit BETWEEN TIME_TO_SEC('17:30:00') - 180 AND TIME_TO_SEC('17:30:00') + 180

no opet, ne zaboravi, oko ponoci imas problem!! ako nije kasno, promeni strukturu baze i spoj ta dva polja
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Pomoc: select count(datum) 17.12.2012. u 15:34 · pre 168 meseci #6
na zalost ne radi ni ovo:

Code:
 WHERE abholdatum = '2012-02-03' AND abholzeit BETWEEN TIME_TO_SEC('17:30:00') - 180 AND TIME_TO_SEC('17:30:00') + 180


da li ja mogu nesto pre ovoga kao na primer da spojim abholungdate i abholzeit, npr. preko concat ili slicno ?
Re: Pomoc: select count(datum) 17.12.2012. u 16:25 · pre 168 meseci #9
Pronasao sam jedan nacin samo ne znam koliko je ovo dobro, verovatno ima jednostavnijih nacina, ovde prvo pretvorim u sekunde, zatim dodam +- 900 sekundi pa onda opet pretvorim u time, ali radi odlicno:
u ovom slucaju mi selektuje sve izmedju 16:55:00 i 17:25:00
Code:
{abholzeit} = "17:10:00";


function time_to_sec($time) {
    $hours = substr($time, 0, -6);
    $minutes = substr($time, -5, 2);
    $seconds = substr($time, -2);

    return $hours * 3600 + $minutes * 60 + $seconds;
}

$vreme=time_to_sec({abholzeit});
$vrememinus = $vreme - 900;
$vremeplus = $vreme + 900;

$vremestart = gmdate("H:i:s", $vrememinus);
$vremeend = gmdate("H:i:s", $vremeplus);

$check_sql = "SELECT COUNT(*)"
   . " FROM bestellungen"
       . "  WHERE abholdatum = '2012-02-03' AND abholzeit <= '$vremeend'  AND abholzeit >= '$vremestart'";

sc_lookup(rs, $check_sql);

if (isset({rs[0][0]}))     // Row found
{
    {test} = {rs[0][0]};
}
        else     // No row found
{
            {test} = '0';
}
$test = {test};
echo "$test";



hocu vase misljenje da li je preporucljivo da se ovako ostavi
Re: Pomoc: select count(datum) 17.12.2012. u 23:30 · pre 168 meseci #11
Zašto ne poslušaš čoveka, sve ti je lepo objasnio?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme