Autor | Zpráva | ||
---|---|---|---|
Haďas Profil |
#1 · Zasláno: 4. 9. 2015, 21:15:03
Ještě jednou zdravím,
mám ještě takový problém ale ten už je celý nad moje chápání. Měl jsem za úkol vytvořit stránky s registraci, loginem, uživatelským a administrátorským rozhraním apod. To vše se mi povedlo ale nastala chyba kdy po mě vyučující chtěl vypsat hodnoty ze dvou sql tabulek, tak aby se data propojila. 1. tabulka obsahuje: | ID_uzivatele | username | password | spravce | 2. tabulka obsahuje: | ID_dochazky | ID_uzivatele | datum | den | cas | jde mi o vypsání dat, kde pomocí ID_uzivatel se data propojí a vypíše se ID_uzivatel | username | ID_dochazky | datum | den | cas | ale tak aby se ke každému uživateli vypsala všechna jeho uložená docházka. Vyučující mi na to ukazoval jeden příkaz, co je také nad moje chápání že to jde jedním příkazem, ale v tom překvapení se mi to nezapsalo ho hlavy. Opravdu budu velmi vděčný za jakékoliv nakopnutí. |
||
lionel messi Profil |
#2 · Zasláno: 4. 9. 2015, 21:18:33
Haďas:
„Vyučující mi na to ukazoval jeden příkaz, co je také nad moje chápání že to jde jedním příkazem, ale v tom překvapení se mi to nezapsalo ho hlavy.“ Zrejme mal na mysli JOIN. Konkrétne v tvojom prípade bude vyzerať takto (samozrejme, s tvojimi názvami tabuliek): SELECT u.ID_uzivatele, u.username, d.ID_dochazky, d.datum, d.den, d.cas FROM uzivatele u JOIN dochazka d ON u.ID_uzivatele = d.ID_uzivatele |
||
Taps Profil |
Select t1.*,t2.* from tab1 as t1 inner join tab2 as t2 on t1.ID_uzivatele = t2.ID_uzivatele Tab2 = tabulka2 |
||
Haďas Profil |
#4 · Zasláno: 4. 9. 2015, 21:37:22
Super, díky za pomoc.
Mrknu na to zítra a ozvu se s novými poznatky Ještě jednou děkuji. |
||
Haďas Profil |
#5 · Zasláno: 5. 9. 2015, 12:37:51
zdravim vás pánové,
tak jsem v phpmyadminovi v SQL zkusil oba příkazy a oba fungují ;) teď se s tim zkusim poprat tak aby se mi to vypisovalo na stránce :) |
||
Keeehi Profil |
#6 · Zasláno: 5. 9. 2015, 13:04:38
Haďas:
Ač ty dotazy vypadají podobně, drobný rozdíl v nich je. A tím je to INNER. Druhý dotaz vypíše jen uživatele, kteří mají alespoň jednu docházku. Ti co nemají ani jediný záznam o docházce se ve výsledků neobjeví. První dotaz však zahrne do výsledku i uživatele bez docházky. Ve výsledků budou každý jako jeden řádek s tím, že slupce username, password a správce budou vyplněné ale sloupce ID docházky, darum, den a čas budou prázdné (null). |
||
pcmanik Profil |
Keeehi:
Prázdne by boli len v tom prípade ak by sa použil LEFT JOIN. Pri klasickom JOINE sa riadky z užívateľov, ktorí nemajú záznam v dochádzke vôbec nezobrazia. |
||
Keeehi Profil |
#8 · Zasláno: 5. 9. 2015, 14:14:35
pcmanik:
Jo, jsem to ale popleta. JOIN je vlastně alias INNER JOINu. |
||
Haďas Profil |
#9 · Zasláno: 5. 9. 2015, 16:43:25
Keeehi: jj, všiml jsem si toho, u prvního kodu se mi zobrazi pouze to co si nadefinuju a při druhém se mi vypíše vše.
nevěděli byste jak to teď vypsat na stránce? zkoušel jsem to na hulváta přes echo ale to vypíše pouze Resource id #4 |
||
lionel messi Profil |
Haďas:
„nevěděli byste jak to teď vypsat na stránce? zkoušel jsem to na hulváta přes echo ale to vypíše pouze Resource id #4“ Samotná funkcia mysql_query nevracia dáta, ale iba resource (alebo false v prípade neúspechu). Pomôže mysql_fetch_assoc. $sql = "SELECT u.ID_uzivatele, u.username, d.ID_dochazky, d.datum, d.den, d.cas FROM uzivatele u JOIN dochazka d ON u.ID_uzivatele = d.ID_uzivatele"; $query = mysql_query($sql); while($row = mysql_fetch_assoc($query)) { echo $row["ID_uzivatele"]. " ". $row["username"]. " ". $row["ID_dochazky"]. " ". $row["datum"]. " ". $row["den"]. " ". $row["cas"]; } |
||
Haďas Profil |
#11 · Zasláno: 5. 9. 2015, 17:26:22
tak jsem to sesmolil nakoenc sám a docela to i funguje ;)
<?php session_start(); $uzit_jmeno="root"; //jmeno admina php $hesloo="abcd1234"; //heslo admina php $server_jmeno="localhost"; //server kde je admina php $databaze=mysql_connect($server_jmeno, $uzit_jmeno, $hesloo) or die("Nemůžu se připojit k databázi!"); $vyber_databze=mysql_select_db("stranky_1", $databaze); $vypis=mysql_query ("SELECT u.ID_uzivatel, u.uzivatelske_jmeno, d.ID_dochazka, d.datum, d.den, d.cas FROM uzivatele u JOIN dochazka d ON u.ID_uzivatel = d.ID_uzivatel") or die (mysql_error()); ?> <html> <head> <title></title> </head> <body> <table border="1"> <tr> <th>ID uživatele</th> <th>Uživatelské jméno</th> <th>ID docházky</th> <th>Datum</th> <th>Den</th> <th>Čas</th> </tr> <?php while($uzivateleee=mysql_fetch_assoc($vypis)){ echo"<tr>"; echo"<td>".$uzivateleee['ID_uzivatel']."</td>"; echo"<td>".$uzivateleee['uzivatelske_jmeno']."</td>"; echo"<td>".$uzivateleee['ID_dochazka']."</td>"; echo"<td>".$uzivateleee['datum']."</td>"; echo"<td>".$uzivateleee['den']."</td>"; echo"<td>".$uzivateleee['cas']."</td>"; echo"</tr>"; } ?> </table> </body> </html> |
||
Haďas Profil |
#12 · Zasláno: 6. 9. 2015, 14:58:21
moc vám všem děkuju za pomoc ;)
|
||
Časová prodleva: 9 let
|
0