Autor | Zpráva | ||
---|---|---|---|
pito Profil |
#1 · Zasláno: 28. 4. 2009, 19:10:18
Zdravím,
Potřebovál bych udělat toto,ale nevím jak na to.Když se uživatel přihlásí má tam potom na levé stráně svoje menu.Na začátku toho menu je jeho nick a já bych potřeboval aby bylo za tým nickem napsané jeho místo v kterém se nachází v tabulce.Mám tipovací soutěž kde je tabulka s uživateli.No a př.: uživatel v tabulce je na 5.místě tak bych udělat aby se za tým nickem napsalo to místo na kterém je zrovna v tabulce teda takhle: př.: jabond (5.místo) Prosím poraďte jak na to. |
||
AM_ Profil |
#2 · Zasláno: 28. 4. 2009, 19:30:55
Podle jakého kritéria je v tabulce na pátém místě? je to mysql tabulka? záleží, jak je tabulka uložená, ale zřejmě by na daném řádku mělo být napsáno i jeho umístění.
|
||
pito Profil |
#3 · Zasláno: 28. 4. 2009, 22:40:04
Ano je tam umístění.Na webu mám tu tabulku.V tabulce jsou serazeni uzivatele ktery ma nejvice bodu.A vypis je z db.
|
||
Kajman_ Profil * |
#4 · Zasláno: 28. 4. 2009, 22:42:16
Spočítáte počet uživatelů, kteří mají více bodů, přičtete jedničku a máte pořadí.
|
||
pito Profil |
#5 · Zasláno: 29. 4. 2009, 15:22:24
No to mám tu tabulku
$vysledek=mysql_query("SELECT * FROM users ORDER BY body DESC, nick ASC limit 15") or die(mysql_error()); Ale já potřebuji jen u určitého uživatele zjistit na kterém je místě.Uživatelé zjistím pomocí SESSION jak se přihlásí. Potřebují to dá tady: if (($_SESSION['prihlasen'] == 1)or isset($_SESSION['uziv-jmeno'])) { echo "Uživatel:<font color='#FFCC00'> ".$_SESSION['uziv-jmeno'] . " </font> Zkoušel jsem to dát takhle ale vypíše mi to celkový počet uživatelů. if (($_SESSION['prihlasen'] == 1)or isset($_SESSION['uziv-jmeno'])) { echo "Uživatel:<font color='#FFCC00'> ".$_SESSION['uziv-jmeno'] . " </font> require "db.php"; $pocet=mysql_result(mysql_query("SELECT COUNT(*) FROM users ORDER BY body"),0); echo "(<b>".$pocet."</b> místo); |
||
AM_ Profil |
#6 · Zasláno: 29. 4. 2009, 15:25:19
select count(*) from users where body >= (select body from users where id='aktualni_uzivatel')
|
||
Kajman_ Profil * |
Bez poddotazu by to mohlo být při rozsáhlejší tabulce rychlejší...
select count(*) as poradi from `users` u1, `users` u2 where u1.nick='$_SESSION[uziv-jmeno]' and (u1.body<u2.body or (u1.body=u2.body and u1.nick>=u2.nick)) |
||
pito Profil |
#8 · Zasláno: 29. 4. 2009, 16:06:01 · Upravil/a: pito
no mám to takhle a píše mi to kolik mám bodů a né na kterým jsem místě.Kde může být chyba.
require 'db.php'; $pocet=mysql_result(mysql_query("select body from users where id =".$_SESSION['uziv-id']),0); echo "<font color='white'>(".$pocet.".místo)</font><br><br>"; |
||
AM_ Profil |
#9 · Zasláno: 29. 4. 2009, 16:11:12
Tady to bude asi těžké. Když čteš položku "body" z řádku daného uživatele, co bys čekal že tak asi dostaneš?
Řešení už jsem ti napsal, mě přijde vložený dotaz přinejmenším čitelnější než to co psal kajman_ a intuitivně bych odhadl, že bude i rychlejší než kajman_ovo spojování tabulek, ale možné je zřejmě použít obojí. |
||
pito Profil |
#10 · Zasláno: 29. 4. 2009, 16:14:08
Já nemám ale v db nikde dané pořadí co bych tam mněl dát id asi ne že?
|
||
Kajman_ Profil * |
#11 · Zasláno: 29. 4. 2009, 16:16:33
AM_
a intuitivně bych odhadl, že bude i rychlejší než kajmanovo spojování tabulek Intuitivně je jasné, že mysql bude stačit, když ten poddotaz v závorce vykoná jednou, ale ona ta potvora ho vykoná pro každý řádek znovu :-) Třeba bude za pár let plánovač chytřejší, ale zatím je lepší využívat spojení (z pohledu serveru:). |
||
Kajman_ Profil * |
#12 · Zasláno: 29. 4. 2009, 16:19:20
pito
require 'db.php'; $pocet=mysql_result(mysql_query("select count(*) as poradi from `users` u1, `users` u2 where u1.id='$_SESSION[uziv-id]' and (u1.body<u2.body or (u1.body=u2.body and u1.nick>=u2.nick))"),0); echo "<font color='white'>(".$pocet.".místo)</font><br><br>"; |
||
AM_ Profil |
#13 · Zasláno: 29. 4. 2009, 16:24:25
pito
Předhodili jsme ti řešení, jak to pořadí vypočítat z údajů, které máš. Kajman_ už se slitoval a zkopíroval ten svůj dotaz do tvého fragmentu kódu, když jsi to tam ani nebyl schopný zkopírovat. |
||
pito Profil |
#14 · Zasláno: 29. 4. 2009, 16:25:07
píše to chybu:
Parse error: syntax error, unexpected '-', expecting ']' in /home/www/tip-liga.cz/www/index.php on line 417 a řádek 471 je tenhle: where u1.id='$_SESSION[uziv-id]' and (u1.body<u2.body or (u1.body=u2.body and u1.nick>=u2.nick))"),0); |
||
pito Profil |
#15 · Zasláno: 29. 4. 2009, 16:27:51
Dál jsem to i takhle
'$_SESSION['uziv-id']' Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/tip-liga.cz/www/index.php on line 417 |
||
Kajman_ Profil * |
#16 · Zasláno: 29. 4. 2009, 16:35:56
$pocet=mysql_result(mysql_query("select count(*) as poradi from `users` u1, `users` u2 where u1.id='{$_SESSION['uziv-id']}' and (u1.body<u2.body or (u1.body=u2.body and u1.nick>=u2.nick))"),0); |
||
pito Profil |
#17 · Zasláno: 29. 4. 2009, 16:40:27
Super.Moc ti děkuji Kajman_
|
||
Časová prodleva: 15 let
|
0