

dotaz do MySQL - poslední záznam
Ahoj,
mám tabulku s komentáři a jeden ze sloupečků se jmenuje "datum". Tam se mi ukládá datum ve formátu "22. 09. 2007 4:23". chtěl bych zobrazovat informaci o posledním komentáři.
Dotaz ve scriptu mám
$posledni = mysql_query(
"SELECT datum FROM myty_komentare
ORDER BY datum DESC LIMIT 1"
);
a potom
$neco=substr($sex[0],0,26);
echo $neco;
Ono se mi to načte, zobrazí, ale stále jen ono datum 22. 09. 2007 4:23 i když tam jsou dávno novější. Kde mám chybku?
Ten sloupec datum je jakého typu?
Stačilo by možná takto:
Dotaz jsem udělal
o kousek dál
a zobrazuje se mi místo data a času Resource id #5
Hm, to vypadá, že ti dotaz vrátil pole...
Zkus
Teď pro změnu nevrátil vůbec nic
Asi jsem měl ještě napsat, že ten sloupec v tabulce je typ varchar a možná by jej stačilo přetypovat. Jinde to však mám stejně a chodí to dobře.
Hm, varchar není pro datum moc dobrý typ...
Ted jsem to přetypovakl na "datetime" a při
a následně
se nezobrazí nic.
Při
a následně
se zobrazi 2007-09-22 00:00:00 což je ale také blbost.
Krat, zmen ten typ na DateTime nebo DateStamp (nevim jaky typ pro datum MySQL obsahuje)
Pak ti to bude sortovat tak, jak potreujes
Napadlo mě, že bych to udělal takto:
ale také se nic nezobrazí bůůů
Prečítaj si dokumentáciu k mysql_query a skús to spraviť podľa príkladu, ktorý tam je, pretože takto to určite nemôže fungovať.
Oprava
ale stejně to mám blbě, zobrazuje se mi chyba
Parse error: syntax error, unexpected T_STRING
Chybí uvozovky a závorka u SELECTu.
Oprava opravy
a stejně se nic nezobrazuje
Řekl bych, že to nelze takto zapsat. Podívej se na ten odkaz od losa.
A když vybíráš více sloupců a jeden z nich jako MAX(), tak je myslím nutno použít GROUP BY.
Tak trochu jsem to předělal na "zobraz poslední id ve sloupci id", podle příkladu
SELECT kniha, MAX(stran) FROM knihovna;
z mm.gene.cz
takto:
a stejně se mi nic nezobrazí. Chjo...
Si myslím, že nemůžeš kombibovat SELECT id a MAX(id). Já bych tam nechal jen to MAX(id). To už musí chodit.
Když jsem to udělal na:
zobrazilo se Resource id #5, tak jsem přidal to [0] (echo $posledni[0]) a pro změnu se nezobrazuje nic.

Úplně jednoduchý dotaz a já to snad nedám do kupy. Vyhodím to úplně a mám klid.
PHP tak dobře neznám, to bych se musel zeptat synátora. Ale SQL znám velmi dobře, ten SELECT je teď dobře (právě jsem ho odzkoušel na mém Linuxu pod MySQL Query Browser), vybere největší číslo Id i kdyby čert na kobyle jezdil.
Ha! V phpMyAdmin mi tohle chodí dobře. Chybka bude jinde.
Zjednodušil jsem to na
a vypíše: "celkem komentářů: Resource id #4."
Co je na tom furt blbě fakt nechápu...
Vypisuje ti to číslo poslední věty toho selectu. Máš nějak blbě předání sloupce (toho MAX(id)) do PHP.
Jestli se to nepere s jiným id z jiné tabulky, zkusím jiný sloupec
obsah celého souboru:
a stejně Resource id #4
pokus.php
Ako je v dokumentácii napísané, funkcia mysql_query vráti hodnotu typu resource, takže je logické, že keď ju vypíšeš, tak sa zjaví nezmysel typu "Resource id #5". Z tejto hodnoty musíš prečítať údaje pomocou jednej z funkcií mysql_fetch_assoc, mysql_fetch_array, mysql_fetch_row alebo mysql_fetch_object (prípadne mysql_result, ak ti stačí len jedna hodnota).
Tiež by si mal používať funkciu mysql_error, aby si zistil chybovú hlášku v prípade, že je v SQL príkaze nejaká chyba.
Napríklad:
Přijde los, řekne, napíše a je to tak. Dík 5234x.
edit:// dík nejen za řešení, ale hlavně také za vysvětlení