Autor | Zpráva | ||
---|---|---|---|
janek22 Profil * |
#1 · Zasláno: 2. 9. 2011, 22:43:07
Ahoj, na webu sem si udělal přátelé a výpis, kdo je online nebo offline. Teď bych chtěl spočítat kolik jich je online celkem, ale bohužel, když je nějaký přitel přihlášený vždy to píše, že je 1 přihlášen i když sou třeba 4. Když není žádnej, přihlášenej, napíše to správně 0.
<?php $messages_query2 = mysql_query("SELECT * FROM pratele WHERE id_uzivatele = '$user_id_result'"); while($messages_row2 = mysql_fetch_array($messages_query2)) { $id_pritele = $messages_row2["id_pritele"]; } $pocet = MySQL_Query("SELECT * FROM users_sessions WHERE userid = '$id_pritele'"); if (MySQL_Num_Rows($pocet)>0){ echo " ".mysql_num_rows($pocet)." "; } else { echo "0"; } ?> |
||
Tori Profil |
#2 · Zasláno: 2. 9. 2011, 22:59:48 · Upravil/a: Tori
Chcete tedy zobrazit jen počet těch online, nikoli jména? Myslím, že by to šlo i jedním dotazem:
$sql = "SELECT COUNT(*) FROM pratele p INNER JOIN users_sessions s ON s.userid = p.id_pritele AND id_uzivatele = $user_id_result"; // předpokládám tady, že sloupec je typu INT a v proměnné je určitě číslo. $result = mysql_query($sql) or die(mysql_error()); $pocetOnline = mysql_result($result, 0); Jinak ve vašem skriptu je chyba v tom, že na ř.4 si při každém průchodu cyklem přepisujete proměnnou $id_pritele. Po ukončení cyklu je v ní tedy hodnota z posledního řádku výsledků = jedno ID, a v users_session se k tomu jednomu ID samozřejmě najde jen jeden řádek. |
||
Bertram Profil |
#3 · Zasláno: 2. 9. 2011, 23:04:08
Protože ti první dotaz vrátí vždy jen jeden nebo žádný záznam.
|
||
janek22 Profil * |
#4 · Zasláno: 2. 9. 2011, 23:12:05
Tori:
Díky, funguje bezvadně :) ještě bych měl takovej dotaz, když je někdo přihlášenej šlo by udělat, aby číslo bylo zelené? A když bude 0 tak černé? předtím sem to totiž řešil if (MySQL_Num_Rows($sql)>0){ .... } else { .... } |
||
janek22 Profil * |
#5 · Zasláno: 3. 9. 2011, 11:00:28
Už nic, už sem nato přišel :)
|
||
janek22 Profil * |
#6 · Zasláno: 3. 9. 2011, 11:31:29
tak furt nic :( teď mi to ukazuje jinou barvou, ikdyž je 0 přátel online...
$sql = "SELECT COUNT(*) FROM pratele p INNER JOIN users_sessions s ON s.userid = p.id_pritele AND id_uzivatele = $user_id_result"; $result = mysql_query($sql) or die(mysql_error()); $pocetOnline = mysql_result($result, 0); if (MySQL_Num_Rows($result)>0){ echo "Přátelé(<font color='green'>$pocetOnline</font>)"; } else { echo "Přátelé(0)"; } |
||
Tori Profil |
#7 · Zasláno: 3. 9. 2011, 11:52:31
janek22:
Ten sql dotaz vrací jeden řádek s jednou hodnotou. Počet přátel online máte přece v proměnné $pocetOnline, na co mysql_num_rows? |
||
janek22 Profil * |
#8 · Zasláno: 3. 9. 2011, 12:20:32
nevim, nenapadá mě jiné řešení jak docílit toho, když někdo z pžátel je přihlášenej aby číslo bylo zelené, když nikdo nebude přihlášenej, tak aby byla 0 černě napsaná.
|
||
Medvídek Profil |
#9 · Zasláno: 3. 9. 2011, 12:23:27
janek22:
Tak to snad můžete zjistit podle hodnoty v proměnné $pocetOnline, ne? |
||
skrepyKOKO Profil |
#10 · Zasláno: 5. 9. 2011, 19:32:12 · Upravil/a: skrepyKOKO
ty online bych vyřešil pomocí databáze,
if(isset($online='1')){ ... } funguje to takhle: když se někdo přihlásí,změní se online v databázi z 0 na 1,poté podmínka vybere pouze jen hodnoty s 1... no,a zbytek máš nahoře... při odhlašování udělej update z 1 na 0... |
||
pcmanik Profil |
#11 · Zasláno: 5. 9. 2011, 19:52:06 · Upravil/a: pcmanik
skrepyKOKO:
Pre porovnavanie sa v php pouzivaju 2 rovna sa, 1 je pre priradovanie hodnoty, naviac neviem co tam potom robit to isset A uz dlhsie si vsimam tvoje prispevky, zjavne nemas jasne v tom jazyku, tak prosim davaj tu len rady, ktorymi si si 100% isty. |
||
Časová prodleva: 3 dny
|
|||
CZechBoY Profil |
#12 · Zasláno: 8. 9. 2011, 23:50:06
$sql = "SELECT COUNT(1) FROM pratele p INNER JOIN users_sessions s ON s.userid=p.id_pritele AND id_uzivatele=$user_id_result"; $result = mysql_query($sql) or die(mysql_error()); $pocetOnline = mysql_result($result, 0); if ($pocetOnline>0){ echo "Přátelé(<font color='green'>$pocetOnline</font>)"; } else { echo "Přátelé(<span style='color:black'>0</span>)"; } |
||
Časová prodleva: 14 let
|
0