Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.11.10
Prihlásený: 28.12.15
Príspevky: 6
Témy: 2
Príspevok NapísalOffline : 23.12.2015 23:51

Ahojte,
robim SQL dotaz na to, aby mi vypisalo aku hodinu aktualne vyucuje ucitel.(napr. ak bude 8 hodin rano, tak mi zobrazi ze ten a ten ucitel vyucuje napr. slovencinu) Mam v databazi tabulku rozvrh a tam mam ulozene data o zaciatku, konci hodin a pod. Tieto hodiny su ulozene v datetime. A mam problem, ako to prepojit s php a zobrazit?
Mam to momentálne takto:
Kód:
$stmt3 = $db->prepare("SELECT substring(lessons.start_time, 11,6), substring(lessons.end_time,11,6),
                                FROM lessons INNER JOIN lectors ...
                                WHERE lessons.start_time >= (' ".date('Y-m-d H:i:s')." ')
                                AND lessons.end_time <= (' ".date('Y-m-d H:i:s')." ')  AND lectors.lector_id=:id
                                ORDER BY ... ");
$stmt3->bindValue(":id", intval($_GET["id"]));
$stmt3->execute();


Ak dam namiesto date normalne casove rozmedzie, tak mi vypise ten predmet v tom case, ale v tomto pripade vypise len Array(). Zobrazujem to pomocou latte sablony, v ktorej som si dala podmienku, ze ak je pole prazdne, tak vypise, ze ucitel nikde neuci, ale ani tuto spravu mi neche zobrazit.


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
MySQL a PHP

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 24.12.2015 0:34

Kód:
$stmt3 = $stmt3->fetchAll(PDO::FETCH_ASSOC); //vrati pole vsetkych vysledkov, ktore ti ten sql select najde
var_dump($stmt3); //si mozes pozriet co sa v tom poli nachadza predtym ako si budes cez latte formatovat vystup podla tvojich poziadaviek







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 24.12.2015 8:41

Ja len rýchlo k tomu selectu
Miesto toho substring sa pozri na tieto funkcie http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

A existuje between, ktorý ti vie uľahčiť prácu http://www.tutorialspoint.com/mysql/mysql-between-clause.htm







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.11.10
Prihlásený: 28.12.15
Príspevky: 6
Témy: 2
Príspevok Napísal autor témyOffline : 25.12.2015 19:03

Between som nasla, ze porovnava len v 1 stlpci, ja porovnavam medzi 2 stlpcami. Tie data su ulozene vo formate 0000-00-00 08:45:00 napr. a var_dump mi vypise array (size=0)
empty ...
... comu nerozumiem, lebo ked nahradim 'Y-m-d H:i:s' za 0000-00-00 08:00:00 a 0000-00-00 08:45:00 tak mi normalne vypise, aky predmet sa vyucuje v tu dobu... A teraz vecer, ked sa uz nic nevyucuje by to malo vypisat, ze ucitel momentalne nevyucuje, .. ale ani to nevypise:/


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 25.12.2015 19:16

Pozri sa na to ešte raz, pretože BETWEEN je presne na to, aby si neurobila hlúpu chybu v porovnaní. Takže to prepíš na between a potom porozmýšľaj, prečo to nešlo.
Kód:
WHERE tenDatum BETWEEN lessons.start_time AND lessons.end_time







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.11.10
Prihlásený: 28.12.15
Príspevky: 6
Témy: 2
Príspevok Napísal autor témyOffline : 25.12.2015 22:29

Okay, a ako sa to prosím prepaja s php? Lebo toto sql mi vypisuje Array().. Nerozumiem, kde robim chybu. Inak rozmyslam, v tomto pripade je potrebne pouzit substring?


SELECT lessons.start_time, lessons.end_time
FROM lessons INNER JOIN lectors ...
WHERE '".date('Y-m-d H:i:s')."' BETWEEN lessons.start_time AND lessons.end_time


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 26.12.2015 8:09

Nie, nie je potrebný substring, ak ti nevadí, že dostaneš celý datum a čas.

A ako sa to prepája s php napísal JanoF. Musíš použiť FetchAll.

A ak ti to stále nepôjde, pošli sem tvoj kód.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.11.10
Prihlásený: 28.12.15
Príspevky: 6
Témy: 2
Príspevok Napísal autor témyOffline : 26.12.2015 11:08

ja to skusam v db a data sa mi zobrazia bez podmienky, ale s pomienkou uz nie, nerozumiem preco

Kód:
$stmt3 = $db->prepare(" SELECT l.schoolday, l.start_time, l.end_time, t.lectorsurname, sg.class_id, c.grade, s.subjectname
                                FROM lessons l
                                INNER JOIN lectors       t  ON l.lector_id=t.lector_id
                                INNER JOIN studentgroups sg ON l.studentgroup_id=sg.studentgroup_id
                                INNER JOIN classes       c  ON sg.class_id=c.class_id
                                INNER JOIN subjects      s  ON l.subject_id=s.subject_id
                                WHERE l.start_time <= CURTIME() AND l.end_time >= CURTIME() AND t.lector_id=:id
                                ORDER By c.grade, l.schoolday, l.start_time");
        $stmt3->bindValue(":id", intval($_GET["id"]));
        $stmt3->execute();
       $data=$stmt3->fetchAll();
       print_r($data);

     $tplVars["vyucovanie"] = $stmt3->fetchAll();



a latte

Kód:
<tr>
            <th> Aktuálne vyučuje: </th>
           </tr>
         {foreach $vyucovanie as $aktual}
          {if !empty($aktual['grade'])}   
         <tr>
           <td>{$aktual['grade']} </td>
         </tr>
         {/if}
         {if ($aktual['grade']) == NULL}
         <tr> <td> <span> Učiteľ momentálne nevyučuje </span></td></tr>
         {/if}
         {/foreach}


Myslim, ze nevadi, ze to bude zobracovane s datumom, ja chcem zobrazt len rocnik v ktorom uci aktualne ucitel


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 26.12.2015 18:03

Používaš tam dva krát po sebe fetchAll. To by si nemala, ten prvý fetchAll akoby "vyčerpá" všetky dáta a druhý už nevráti nič. Miesto toho druhého fetchu priraď jednoducho $data, ktoré máš už vytiahnuté pred tým.

Ďalej problém môže byť aj v dátach. Máš tam nejak veľa joinov. Neviem, či ti ich reálne treba - ak chceš zistiť LEN to, ČI učiteľ vyučuje, tak asi nie. Skús teda vyhádzať všetky nepotrebné joiny (tie posledné tri) a skús to spustiť tak. Ak ti to pôjde, tak problém bude v dátach a niečo sa ti tam v tých inner jinoch správne neprepojí. Tak môžeš použiť left joiny a skúmať, kde je chyba.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.11.10
Prihlásený: 28.12.15
Príspevky: 6
Témy: 2
Príspevok Napísal autor témyOffline : 27.12.2015 0:33

Ja ten prvy join mazem, ten mam na to, aby mi zobrazilo, co tam je :) Ta tabulka je poprepajana, preto tolko joinov, ja chcem vypis ak vyucuje tak rocnik a predmet. Nerozumiem, preco mi tie data vypise bez tej podmienky, a s tou podmienkou vrati nula riadkov. Skusam aj left join, ale vypisuje tie iste riadky jak s inner:/


Odpovedať na tému [ Príspevkov: 10 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. PHP programátor - PHP, MySQL, jQuery,X)Html/CSS

v Ponuka práce

0

1310

02.05.2011 12:08

magicmedia Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php ->mysql ->php Help.zoradit

v PHP, ASP

4

593

20.06.2009 12:44

KViki Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php+apache+mysql

v Ostatné

13

1295

06.07.2009 11:37

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP a MySQL

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

30

2133

12.01.2009 13:09

jtomcik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Programátor PHP/MySQL

v Ponuka práce

0

838

23.10.2010 17:06

brownsro1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL + PHP + články

v PHP, ASP

7

616

17.10.2014 18:30

Jarvix Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP - MySQL - JSON

v PHP, ASP

17

418

05.05.2020 19:05

jumper Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP + MYSQL inzercia

v PHP, ASP

21

1858

02.09.2007 18:51

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP a MySQL

v PHP, ASP

4

385

23.09.2013 23:50

shaggy Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. PHP, MySQL koder

v Ponuka práce

1

902

12.07.2010 19:50

Murtagh Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mysql, php - pripojenie

v PHP, ASP

2

429

28.06.2012 18:06

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP a MYSQL

v PHP, ASP

16

865

02.05.2010 10:26

zdeniatqo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL a PHP

v Databázy

1

701

03.04.2011 8:09

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem PHP, MySQL

v PHP, ASP

11

498

17.05.2010 12:07

ricco24 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP, MySQL programator

v Ponuka práce

0

789

23.10.2010 11:21

mondzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP a MYSQL

v PHP, ASP

4

600

10.06.2011 23:12

Sunnynko Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra