Autor | Zpráva | ||
---|---|---|---|
Milos Profil |
#1 · Zasláno: 6. 2. 2006, 00:22:38
Zdravím všechny nadšence a měl bych na Vás bezesporu chvilkouvou otázku.
Ukladam si přístupy přes PHP do DTB MySQL s jednoduchou statistikou (prohlížeč, rozlišení atd.) a chtěl bych z toho udělat počítadlo, tj. aby se mi zobrazovalo číslo posledního vloženého řádku. Mám tam nějakejch 130.000 zaznamu a potřebuji získat číslo toho posledního co možná nejsnazší cestou (abych moc nezatěžoval DTB server) Napadá mě "select count(*) as pocet FROM statistika" ale nevím jestli je to dobré řešení??? Není něco jednoduššího??? Moc díky. |
||
Hugo Profil |
#2 · Zasláno: 6. 2. 2006, 05:51:16
Milos
Toto je asi nejjednodušší řešení. Počet řádků jde ještě zjistit pomocí show table status like 'jmeno_tabulky' ale u tabulek InnoDB s velk7m počtem záznamů to vrací pouze odhad počtu řádků. |
||
vis Profil * |
#3 · Zasláno: 6. 2. 2006, 11:28:08
$seznam=mysql_query("show table status like 'jmeno_tabulky'");
//a vytáhni si třetí hodnotu: $pocet_=$seznam[3]; :-) |
||
vis Profil * |
#4 · Zasláno: 6. 2. 2006, 11:28:58
samozřejmě čtvrtou- [3]
|
||
djlj Profil |
#5 · Zasláno: 6. 2. 2006, 11:58:27
Mám tam nějakejch 130.000 zaznamu a potřebuji získat číslo toho posledního co možná nejsnazší cestou
SELECT id FROM tabulka ORDER BY id DESC LIMIT 1 |
||
Hugo Profil |
#6 · Zasláno: 6. 2. 2006, 12:12:26
djlj
Aha, špatně jsem to přečetl. Pokud chce poslední id, tak se to dá udělat i takto SELECT max(id) FROM tabulka |
||
djlj Profil |
#7 · Zasláno: 6. 2. 2006, 12:15:14
Hugo
Pravda, to mě nenapadlo :). |
||
Milos Profil |
#8 · Zasláno: 6. 2. 2006, 20:52:20
Díky všem,
nejlepší řešení mi přijde od HUGA, ale místo statisíc mi to vypisuje jen číslo 12. Jak to vypsat??? Kde je chyba??? Používám tento kód: <? $vysledek=mysql_query("SELECT max(id) as pocet FROM statistika"); echo $pocet; ?> Díky |
||
bohumil Profil * |
#9 · Zasláno: 6. 2. 2006, 21:01:25
nevim, zda-li sis vedom toho, ze max(id) neodpovida poctu radku v tabulce. Pokud mas na sloupci id definovan autoincrement a mas tam staticsice zaznamu, neni mozne, aby ti to vypisovalo tu dvanactku
|
||
Milos Profil |
#10 · Zasláno: 6. 2. 2006, 21:17:15
bohumil
Jo sem si toho vědom, ale mám tam autoincrement, takže by to mělo odpovidat... Zajímavé je, že na lokále mi to vyhazuje číslo 11 cca. 8000 záznamů a na ostrém webu 12 cca. 130000 záznamů. Zkoušel sem i fintu od vis ale taky nefunguje. Ještě nějaká rada. |
||
Kajman_ Profil * |
#11 · Zasláno: 6. 2. 2006, 22:06:50
<?
$vysledek=mysql_query("SELECT max(id) as pocet FROM statistika"); $row=mysql_fetch_array($vysledek); echo $row['pocet']; ?> |
||
jozob Profil |
#12 · Zasláno: 7. 2. 2006, 00:48:59
Milos
K tomu kódu - Kajman_ uviedol správnu verziu. V Tvojom kóde to vyzerá tak, že premenná $pocet má buď náhodnú hodnotu alebo niekde pred tým si ju používal. V Tvojom kóde si do tej premennej nič neuložil. |
||
Milos Profil |
#13 · Zasláno: 7. 2. 2006, 14:20:22
To:Kajman_
Díky, tebou napsaný kód už funguje :) |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0