Autor Zpráva
grimword
Profil
jak co nejrychleji ziskat pocet zaznamu z MYSQL (tabulky)? prvni napad je to projet nejakym WHILEm, druhy vytahnout si posledni zaznam a precist si sloupec ID (je nastaven na auto_increment), v PHPmyAdminovi jsem videl v zalozce Upravy, ze muzu zmenit hodnotu auto_increment (vzdycky se nastavi na dalsi hodnotu - mam-li posledni zaznam ID = 20, nastavi se na 21) - neslo by ji nejak vytahnout? nebo nejaky jiny efektvni zpusob? jde mi o rychlost a jednoduchost
8383-9021
Profil *
Neviem či som to správne pochopil..
<?php
/*tu musi byt spojenie do mysql*/
$query = mysql_query("SELECT * FROM `tabulka`");
$zobraz = mysql_fetch_array($query);
$id = $zobraz['id'];
?>
Počet údajov v mysql: <?php echo $id ?>


To by malo zobraziť posledné IDčko číže počet údajov ak chápeš..
grimword
Profil
jop, to vypada ok a fungue, diky ti :)
8383-9021
Profil *
NZ
BetaCam
Profil
8383-9021
Neviem či som to správne pochopil..
<?php
/*tu musi byt spojenie do mysql*/
$query = mysql_query("SELECT * FROM `tabulka`");
$zobraz = mysql_fetch_array($query);
$id = $zobraz['id'];
?>
Počet údajov v mysql: <?php echo $id ?>


To by malo zobraziť posledné IDčko číže počet údajov ak chápeš..

grimword
jop, to vypada ok a fungue, diky ti :)

No tak nevim sem asi nechápavec, ale proste nejde mi do hlavy jak ti tohle může fungovat tak jak má.

1) Kód uvedený nahoře musí logicky zobrazit první ID které je v tabulce navíc uplně zbytečně tahá celou tabulku. Když už to chci dělat takhle blbe tak si tam zaprvé dám aspon LIMIT a zadruhé změnim řazení aby se mi vracelo opravdu poslední ID. Tedy dotaz typu :

SELECT id FROM `tabulka` ORDER BY id DESC LIMIT 1


2) Tato konstrukce nevrací skutečný počet záznamů v tabulce, ale pouze nejvyší ID v tabulce a to tedy opravdu není to samé. Pokud chceš spočítat skutečný počet záznamů měl by si to dělat třeba tahle :

SELECT count(id) FROM tabulka


Opravdu nechápu jak ti výše uvedený kód od 8383-9021 může fungovat tak jak má. :)
Medvídek
Profil
8383-9021

a co kdyz nejaky zaznam vymazes :) co mysql_num_row()
grimword
Profil
include "****.php";
$query = mysql_query("SELECT * FROM `data` ORDER by id DESC");
$zobraz = mysql_fetch_array($query);
$a = $zobraz['id'];
grimword
Profil
zaznamy nebudou mazany
Medvídek
Profil
include "****.php";
$query = mysql_query("SELECT id FROM `data` ORDER by id DESC LIMIT1");
$zobraz = mysql_fetch_array($query);
$a = $zobraz['id'];
BetaCam
Profil
Medvídek
co mysql_num_row()

se hodí pouze pokud s vrácenými daty hodláš pracovat tedy například :

$query = mysql_query("SELECT id FROM `tabulka` ORDER BY id ");
$pocet = mysql_num_rows($query);
while($row = mysql_fetch_array($query)){
echo $row['id'].'<br />';
}
echo 'Počet vrácených řádků je: '.$pocet;


jinak je to opět zbytečné plýtvání.

grimword
zaznamy nebudou mazany

V tom případě se ale musíš rozhodnout co chceš. Jestli největší ID v tabulce a nebo počet záznamů v tabulce. Vždy by si měl napsat aplikaci tak, aby v každém případě vracela to co má a né aplikaci která vrací to co má jen za určitého předpokladu.
Nox
Profil
SELECT id FROM `data` ORDER by id DESC LIMIT1
Podle mě špatně - co když někdo polovinu dat uprostřed smaže?

Mysql_num_rows viz BetaCam

Jinak
select count(*) as pocet from


Nebo pokud se také má dále pracovat
$data=mysql_query("select SQL_CALC_FOUND_ROWS sloupce from tabulka atd.");
$max=mysql_result(mysql_query("SELECT FOUND_ROWS()"),0);
grimword
Profil
dekuji vsem za krasne rozebrani
dddd
Profil *
Prosím pošlete komentáře jak vypadá web
Odkaz
Slim12
Profil *
Prosím pošlete komentáře jak vypadá web
Odkaz


Tato diskuse neni proto aby ti posílaly hodnoceni tvých stránek s timhle jdí sem

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: