Autor Zpráva
Milos
Profil
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
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 *
$seznam=mysql_query("show table status like 'jmeno_tabulky'");
//a vytáhni si třetí hodnotu:
$pocet_=$seznam[3];
:-)
vis
Profil *
samozřejmě čtvrtou- [3]
djlj
Profil
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
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
Hugo
Pravda, to mě nenapadlo :).
Milos
Profil
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 *
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
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 *
<?
$vysledek=mysql_query("SELECT max(id) as pocet FROM statistika");
$row=mysql_fetch_array($vysledek);
echo $row['pocet'];
?>
jozob
Profil
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
To:Kajman_
Díky, tebou napsaný kód už funguje :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0