function zobraz_nejnovejsi()
{
$sql = "SELECT MAX(id), text FROM brcal;";
$dotaz = mysql_query($sql);
$clanek = mysql_fetch_array($dotaz);
echo $clanek["id"];
};
Co je špatně? Já tu funkci max nechápu !
- prostě potřebuju najít největší ID v tabulce a zaroven taky nacist do pole sloupec text
Max vypíše maximální hodnotu s čísel (viz manual)
ja bych jen dal nazvy sloupcu do `` jinak chybu nevidím
co to vypíše, nějaké číslo, ne?
Jsi připojený k db?
Ne nic a s tim ,text to pise ERROR
tak nejvetsi id najdi pres "SELECT sloupec/* FROM brcal ORDER BY id limit 1
Jinak ti to nefunguje bze michas fci pro Souhrnny udaje s normalnim vytahem. Jestli by to neslo seskupit pres GROUP BY , ale to bys asi nechtel. Zkus ten limit .. melo by to snad jit.
limit - moc narocny a pretezujici pro db.
Jak s tim GROUP BY ?
Máš v id přirozené číslo?
Máš správně seřazené sloupce?
špendlik ..to neni tim ..jak sem rekl MAX je souhrna fce ... zkousim vydrz.. ale to co sem napsal teda DB fakt nezatezuje a imho je to snadnej zpusob
Kdyz nechces limit tak dej jen ORDER BY ID DESC a kdyz nepouzijes cyklus pri vytahu z DB tak ti to vybere jen nejvyssi ...
Ten MAX (id) funguje ...resp me jen bez dalsiho sloupce. At poradi zkusenejsi ...
Cos tu řek vím, nebudu se hádat kdo je zkušenější.. To je pod mou důstojnost. On chtěl max, tak sem mu ho napsal. Způsobů je vždy více a každý je dobrý na něco jiného...
function zobraz_nejnovejsi()
{
$dotaz = mysql_query("select id, text from brcal order by id desc limit 1");
$clanek = mysql_fetch_array($dotaz);
echo $clanek["id"];
echo $clanek["text"];
}
Jo, viz PB. Jinak, limit ti db zatíží opravdu málo. Order by id taky není nic hrozného, kór když to sortíž podle id, na kterém je většinou index. Group by je daleko horší, to se musí celé přečíst, sesortit a povybírat. Takže pokud jsi chtěl text z tabulky s největším id, tak ideal je návrh Petra Bláhy.
Vyřešil sem to tim : (ve starších mySQL )
function zobraz_nejnovejsi()
{
$sql_id = "SELECT max(id) from brcal;";
$dotaz_id = mysql_query($sql_id);
$id = mysql_fetch_array($dotaz_id);
$sql_text = "SELECT text FROM brcal WHERE id=".$id["max(id)"].";";
$dotaz_text = mysql_query($sql_text);
$clanek = mysql_fetch_array($dotaz_text);
echo $clanek["text"];
};
Nebo to ještě jde takto (v mySQL 4.1 a vyšší) :
SELECT text FROM brcal WHERE id=(SELECT max(id) from brcal)
proc jednodusse kdyz slozite vid ...
... order by .. desc limit 1 je stený, navíc je to jenom jeden dotaz.
Ale, kdo chce kam....