[ 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 | 2
NapísalOffline : 23.12.2015 23:51 | MySQL a PHP

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: 13413
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 24.12.2015 0:34 | MySQL a PHP

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 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 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 24.04.1 LTS
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 | 3
NapísalOffline : 24.12.2015 8:41 | MySQL a PHP

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 | 2
Napísal autor témyOffline : 25.12.2015 19:03 | MySQL a PHP

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 | 3
NapísalOffline : 25.12.2015 19:16 | MySQL a PHP

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 | 2
Napísal autor témyOffline : 25.12.2015 22:29 | MySQL a PHP

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 | 3
NapísalOffline : 26.12.2015 8:09 | MySQL a PHP

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 | 2
Napísal autor témyOffline : 26.12.2015 11:08 | MySQL a PHP

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 | 3
NapísalOffline : 26.12.2015 18:03 | MySQL a PHP

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 | 2
Napísal autor témyOffline : 27.12.2015 0:33 | MySQL a PHP

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:/


 [ Príspevkov: 10 ] 


MySQL a PHP



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

1362

02.05.2011 12:08

magicmedia

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

php ->mysql ->php Help.zoradit

v PHP, ASP

4

655

20.06.2009 12:44

KViki

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

960

12.07.2010 19:50

Murtagh

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

mysql, php - pripojenie

v PHP, ASP

2

471

28.06.2012 18:06

Ďuri

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

PHP a MYSQL

v PHP, ASP

16

906

02.05.2010 10:26

zdeniatqo

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

PHP, MySQL programator

v Ponuka práce

0

827

23.10.2010 11:21

mondzo

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

MySQL a PHP

v Databázy

1

744

03.04.2011 8:09

Ďuri

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

Problem PHP, MySQL

v PHP, ASP

11

538

17.05.2010 12:07

ricco24

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

PHP a MYSQL

v PHP, ASP

4

634

10.06.2011 23:12

Sunnynko

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

PHP+MySQL, počítadlo

v PHP, ASP

3

851

09.07.2007 18:19

Tominator

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

PHP - MySQL - JSON

v PHP, ASP

17

472

05.05.2020 19:05

jumper

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

Spocitanie php+mysql

v Databázy

3

728

23.03.2009 13:01

GoodWill

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

mysql + php problem

v PHP, ASP

3

732

21.04.2007 14:08

lukasmakac

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

php,mysql strankovani

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

v PHP, ASP

32

2396

28.08.2009 17:21

stenley

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

PHP - MySQL - vyhladavanie?

v PHP, ASP

5

914

20.03.2010 6:24

rooobertek

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

php+apache+mysql

v Ostatné

13

1343

06.07.2009 11:37

Ďuri



© 2005 - 2024 PCforum, edited by JanoF