Két adatbázis tábla eredménye
Sziasztok!
A következő problémám van.Van 2 db adatbázistáblám:
Az első:
users
id, name,username,email,password,usertype,block,...stb
A második:
session
username,time,session_id,guest,userid,...stb
Amit szeretnék létrehozni, de nem tudom megcsinálni már egy jóideje:
Az első tábla tartalmát kilistáztatom, majd azt szeretném, hogy az egyes sorokban a felhasználók adatai mellett a másik táblából kiszedett adatok alapján (session-ök és userid-k) meghatározhassam, hogy jelenleg ki van az oldalon online.
A users táblában a felhasználókat az id, a session táblában az userid azonosítja.Ezt a kettőt szeretném összehozni valahogyan. Ha tudtok segíteni, azt megköszönném.
Próbálkozásaim:
Adatbázishoz kapcsolódás:
mysql_select_db($database_db, $db);
$query_online = sprintf("SELECT COUNT(*) FROM session WHERE userid = {$row_users['id']}", $colname_online);
$online = mysql_query($query_online, $db) or die(mysql_error());
$row_online = mysql_fetch_assoc($online);
$totalRows_online = mysql_num_rows($online);
Megjelenítés:
echo $row_online['0']; <--- mindig - az eredménye
A segítségeteket előre is köszönöm.
■ A következő problémám van.Van 2 db adatbázistáblám:
Az első:
users
id, name,username,email,password,usertype,block,...stb
A második:
session
username,time,session_id,guest,userid,...stb
Amit szeretnék létrehozni, de nem tudom megcsinálni már egy jóideje:
Az első tábla tartalmát kilistáztatom, majd azt szeretném, hogy az egyes sorokban a felhasználók adatai mellett a másik táblából kiszedett adatok alapján (session-ök és userid-k) meghatározhassam, hogy jelenleg ki van az oldalon online.
A users táblában a felhasználókat az id, a session táblában az userid azonosítja.Ezt a kettőt szeretném összehozni valahogyan. Ha tudtok segíteni, azt megköszönném.
Próbálkozásaim:
Adatbázishoz kapcsolódás:
mysql_select_db($database_db, $db);
$query_online = sprintf("SELECT COUNT(*) FROM session WHERE userid = {$row_users['id']}", $colname_online);
$online = mysql_query($query_online, $db) or die(mysql_error());
$row_online = mysql_fetch_assoc($online);
$totalRows_online = mysql_num_rows($online);
Megjelenítés:
echo $row_online['0']; <--- mindig - az eredménye
A segítségeteket előre is köszönöm.
RE: Két adatbázis tábla eredménye
--
üdv: kmm...
RE: Két adatbázis tábla eredménye
Köszönöm a segítségedet, ezzel a lekérdezéssel működik a dolog.Viszont most egy másik csapdába kerültem.Csak azokat a felhasználókat listázza ki, akik be vannak jelentkezve az oldalra, a többieket viszont nem.
Most igy néz ki a végeredmény:
id username userid
62 admin 62
68 felhasznalo 68
És így kellene kinéznie (szerintem, hogy az online állapotot szerkeszthessem):
id username userid
62 admin 62
63 felhasznalo2 <-- nincs userid, mert nincs session sem
68 felhasznalo 68 / tehát ha nincs userid , akkor a
72 felhasznalo3 felhasználó nincs online /
Emlékezeteim szerint egy tutorial oldalon a SELECT COUNT(*) lekérdezéssel oldották valahogy meg, de nem emlékszem , hogy hogyan és ,hogy hol olvastam.
RE
--
üdv: kmm...
Mi is itten a kérdés?
Miért van szükség sprintf-re??
Gondolom a következőt szeretnéd:
$query_online = "SELECT * FROM users LEFT JOIN session ON users.id=session.userid");
$online = mysql_query($query_online, $db) or die(mysql_error());
while ($row_online = mysql_fetch_assoc($online)) {
var_dump($row_online);
}
$totalRows_online = mysql_num_rows($online);
Már ha a kapcsolat a két tábla között az id és a userid alapján van...
A var_dump-os sort persze bármilyen más műveletre cserélheted, amit az egyes sorokkal akarsz csinálni. De legjobb, ha RTM. ( http://hu2.php.net/manual/hu/function.mysqli-fetch-assoc.php )
--------
Poetro