| | |
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Autor | Správa |
---|
Registrovaný: 17.02.14 Prihlásený: 18.01.24 Príspevky: 450 Témy: 198 Bydlisko: Poprad-okolie |
Kód: <?php if(isset($_POST['prichod'])){ $meno = mysql_query("select * from user order by meno") or die(mysql_error()); $meno_log = mysql_query("select * from user_log order by meno") or die(mysql_error()); $meno_log['meno'] == $meno['meno']; $date = date('Y-m-d H:i:s'); mysql_query("INSERT INTO `user_log` (`login_date`,`meno`) VALUES ('$date','$meno')"); }?> Ahojte, robím na projekte dochádzkového systému, kde mám 2 tlačidlá, jedno pre príchod a druhé pre odchod po kliknutí sa do DB zapíše dátum, áno, to funguje, ale namiesto mena mi do databázy napíše niečo ako Resource #id5. Neviem prečo. Mám tabuľku user, kde je uložené meno a heslo používateľa, ID. V druhej tabuľke user_log mam login_date, logout_date a id logu, ale potrebujem tu importovať aj meno a ID z predchádzajúcej tabuľky a neviem ako nato. Skúšal som mnoho tutoriálov, ale nedokázal som si pomôcť. Ďakujem za každú radu, prípadne funkciu
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 31.05.2016 11:15 | |
|
Kód: $meno = mysql_query("select * from user order by meno") or die(mysql_error()); nevráti meno, vráti len nejaký objekt, pomocou ktorého sa dá k tomu menu dostať (a keď sa ten objekt pokúsiš zobraziť ako text, vypíše sa práve to Resource #id)
|
|
Registrovaný: 17.02.14 Prihlásený: 18.01.24 Príspevky: 450 Témy: 198 Bydlisko: Poprad-okolie |
teda by som mal meno vypísať na základe ID? alebo .. neviem
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 31.05.2016 12:50 | |
|
Tak za prvé, žiadnu selekciu tam nemáš. Obe query vždy vrátia všetky záznamy z tabulky a toť vše. Za druhé, mysql_query vráti vždy objekt, alebo pole, z ktorého si musíš danú informáciu dostať. Použi napr. var_dump na preskúmanie toho, čo ti to vráti. No a za tretie, toto Kód: $meno_log['meno'] == $meno['meno']; to má robiť čo? A ešte za štvrté, mysql pozná hodnotu CURRENT_TIMESTAMP, alebo NOW(), podľa verzie mysql. Nemusíš tam dávať dátum z php. A ešte lepšie je nastaviť to ako DEFAULT hodnotu pre stĺpec a nemusíš to riešiť vôbec.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 17.02.14 Prihlásený: 18.01.24 Príspevky: 450 Témy: 198 Bydlisko: Poprad-okolie |
Už som to urobil a funguje to. Mám ale ďalší problém, nechcem zakladať ďalšiu tému. Potrebujem vypísať jednotlivo pre každého používateľa jeho príchody, aby mal zoznam, kedy prišiel do práce v uplynulých dňoch. Ale nefunguje mi to. Skúšal som to cez arraye, mysql fetch a mnoho iných funkcií, s while atď, ale stále mi pre každého vypíše iba jeden záznam. Vedeli by ste mi poradiť, kde je chyba? Var_dump mi taktiež vráti iba prvý záznam, ktorý bol kedy pre to ID používateľa zistený a tam akoby zastane. Kód ako taký je postavený dobre, ak som tam niečo pozmenil, razom mi to dávalo hodnoty typu Resource ID atď. Používam 2 tabuľky: USER --> meno, heslo, id(auto) USER_LOG --> id, idlogu(auto), datum prihlásenia, dátum odhlásenia vrámci appky. id(auto) a id sú totožné podľa používateľa a jeho session id. script zo súboru, ktorý slúži na výpis prihlásení podľa jeho ID: (vráti iba jeden záznam) Kód: <?php
if(!isset($_SESSION['uid'])){ echo "Musíš byť prihlásený!"; }else{ ?> <div id=tabulka><center> <script> function startTime() { var today = new Date(); var h = today.getHours(); var m = today.getMinutes(); var s = today.getSeconds(); m = checkTime(m); s = checkTime(s); document.getElementById('txt').innerHTML = h + ":" + m + ":" + s; var t = setTimeout(startTime, 500); } function checkTime(i) { if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10 return i; } </script> <font size=16 color=white><b><body onload="startTime()"> <div id="txt" ></div></b></font> <?php $ID = ($_SESSION['uid']); mysql_set_charset("utf8"); $user_get = mysql_query("SELECT * FROM `user` WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $user = mysql_fetch_assoc($user_get); $meno=$user['meno']; $krstnemeno=$user['krstnemeno']; $priezvisko=$user['priezvisko'] ?> <h2>Vitajte, pán/pani <?php echo $krstnemeno?> <?php echo $priezvisko; ?> , tu si môžete prezrieť vaše príchody do práce</h2></center> <?php mysql_query("SELECT * FROM `user_log` WHERE `id`='".$ID."'") or die(mysql_error()); $login_get = mysql_query("SELECT * FROM `user_log` WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $login = mysql_fetch_assoc($login_get); $zaznamloginu= $login['login_date']; echo $zaznamloginu;
} ?>
<a href="poprihlaseni.php"> <button type="button" align=left class="xmiddle green button round">Späť</button> </a> Ďakujem za každú radu. Som fakt bezradný a neviem sa ďalej pohnúť. Skúšal som 2 hodiny meniť hodnoty, pretáčať ich, skúšať rôzne finty a nejde to.. Ďakujem
|
|
Registrovaný: 06.02.14 Prihlásený: 19.01.18 Príspevky: 443 Témy: 9 |
zacni tym, ze si urobis poriadok v kode. miesas php, html, styly a javascript v jednom subore... hroza pozerat a zachvilu sa ani ty v tom nebudes vyznat ak sa este vyznas 1. oddel php funkncu cast do samostatneho subory 2. javascript do samostatneho suboru. a podla mna by si ho tam ani nepotreboval, lebo to, na co vyuzivas, by sa dalo v php alebo priamo v mysql prikaze. nerozumies poriadne ani jednemu jazyku, tak sa vyhni ich miesaniu 3. robis jednu sql query 3krat a uplne zbytocne, raz by stacilo na ziskanie udajov 4. mysql_query sa uz nepouziva! je deprecated Kód: <font size=16 color=white><b><body onload="startTime()"><div id="txt" ></div></b></font> nemyslis vazne,ze? 1. font sa uz nepouziva 2. tieto html atributy sa uz nepouzivaju 3. a urcite nemozu byt pred <body> 4. html elementy nemas pozatvarane, atributy nemaju uvodzovky 5. ako mozes uzavriet element predtym ako uzavries child element? 5. <center> sa nepouziva 6. pouzivaj spravnu indentaciu a odpoved na tvoju otazku, ze preco mas iba jeden zaznam: Kód: $login_get = mysql_query("SELECT * FROM `user_log` WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $login = mysql_fetch_assoc($login_get);
treba iterovat, lebo $login_get obsahuje n-riadkov, alebo mysql_fetch_assoc spracuje iba jeden riadok do pola, tj ten prvy. ako to teda spravne pouzit: http://php.net/manual/en/function.mysql-fetch-assoc.phpa takisto - mysql_fetch_assoc je deprecated!
|
|
Registrovaný: 17.02.14 Prihlásený: 18.01.24 Príspevky: 450 Témy: 198 Bydlisko: Poprad-okolie |
nedokážem to s tým mysql fetch assoc.. skúšal som všetky varianty a nejde to.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 01.06.2016 13:33 | |
|
Priamo v dokumentácii je príklad, v ktorom je ukázané, ako sa to používa mysql_fetch_assoc (a ako už bolo napísané tú funkciu mysql_fetch_assoc treba použiť v nejakom cykle, v tom príklade použili while) PS: A ak chceš, aby ti nikto neporadil, tak "nejde to" je najlepší spôsob, ako to dosiahnuť.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
| 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
|
|