Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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?

loading...
Předmět Autor Datum
Ten sloupec datum je jakého typu? Stačilo by možná takto: $posledni = mysql_query( SELECT MAX(datu…
host 22.09.2007 15:17
host
Dotaz jsem udělal $posledni = mysql_query(" SELECT MAX(datum) AS posledni_datum FROM myty_komentare…
Kráťa 22.09.2007 15:26
Kráťa
Hm, to vypadá, že ti dotaz vrátil pole... Zkus echo $posledni[0];
host 22.09.2007 15:28
host
Teď pro změnu nevrátil vůbec nic :-) Asi jsem měl ještě napsat, že ten sloupec v tabulce je typ varc…
Kráťa 22.09.2007 15:32
Kráťa
Hm, varchar není pro datum moc dobrý typ... :-/
host 22.09.2007 15:56
host
Ted jsem to přetypovakl na "datetime" a při $posledni = mysql_query(" SELECT MAX(datum) AS posledni…
Kráťa 22.09.2007 18:31
Kráťa
Krat, zmen ten typ na DateTime nebo DateStamp (nevim jaky typ pro datum MySQL obsahuje) Pak ti to bu…
Jan Fiala 22.09.2007 18:32
Jan Fiala
Napadlo mě, že bych to udělal takto: <?php $posledni = mysql_query ("SELECT * FROM myty_komentare W…
Kráťa 22.09.2007 20:54
Kráťa
Prečítaj si dokumentáciu k mysql_query a skús to spraviť podľa príkladu, ktorý tam je, pretože takto…
los 22.09.2007 21:09
los
Oprava $posledni = mysql_query(" SELECT datum, MAX(id) FROM myty_komentare; ?> <b>poslední komentář…
Kráťa 22.09.2007 23:13
Kráťa
Chybí uvozovky a závorka u SELECTu.
host 22.09.2007 23:26
host
Oprava opravy <?php $posledni = mysql_query(" SELECT datum, MAX(id) FROM myty_komentare"); ?> <b>po…
Kráťa 22.09.2007 23:32
Kráťa
Řekl bych, že to nelze takto zapsat. Podívej se na ten odkaz od losa. A když vybíráš více sloupců a…
host 23.09.2007 00:11
host
Tak trochu jsem to předělal na "zobraz poslední id ve sloupci id", podle příkladu SELECT kniha, MAX(…
Kráťa 23.09.2007 00:27
Kráťa
Si myslím, že nemůžeš kombibovat SELECT id a MAX(id). Já bych tam nechal jen to MAX(id). To už musí…
Rce 23.09.2007 00:33
Rce
Když jsem to udělal na: <?php $posledni = mysql_query (" SELECT MAX(id) FROM myty_komentare"); ?> <…
Kráťa 23.09.2007 00:55
Kráťa
PHP tak dobře neznám, to bych se musel zeptat synátora. Ale SQL znám velmi dobře, ten SELECT je teď…
Rce 23.09.2007 01:35
Rce
Ha! V phpMyAdmin mi tohle chodí dobře. Chybka bude jinde.
Kráťa 23.09.2007 01:42
Kráťa
Zjednodušil jsem to na $celkem = mysql_query ("SELECT MAX(id) FROM myty_komentare"); echo "<b>celke…
Kráťa 23.09.2007 01:59
Kráťa
Vypisuje ti to číslo poslední věty toho selectu. Máš nějak blbě předání sloupce (toho MAX(id)) do PH…
Rce 23.09.2007 02:04
Rce
Jestli se to nepere s jiným id z jiné tabulky, zkusím jiný sloupec
Kráťa 23.09.2007 03:05
Kráťa
obsah celého souboru: <?php include "pripojeni.php"; $celkem = mysql_query ("SELECT MAX(jmeno) FROM…
Kráťa 23.09.2007 03:12
Kráťa
Ako je v dokumentácii napísané, funkcia mysql_query vráti hodnotu typu resource, takže je logické, ž…
los 23.09.2007 10:28
los
Přijde los, řekne, napíše a je to tak. Dík 5234x. edit:// dík nejen za řešení, ale hlavně také za v… poslední
Kráťa 23.09.2007 12:36
Kráťa

Ted jsem to přetypovakl na "datetime" a při

$posledni = mysql_query("
SELECT MAX(datum) AS posledni_datum
FROM myty_komentare"
);

a následně

echo $posledni;

se nezobrazí nic.
Při

$posledni = mysql_query( 
"SELECT datum FROM myty_komentare
ORDER BY datum DESC LIMIT 1"
);

a následně

$sex=mysql_fetch_array($posledni); 
$neco=substr($sex[0],0,23);
echo $neco;

se zobrazi 2007-09-22 00:00:00 což je ale také blbost.

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:

<?php
$posledni = mysql_query("
SELECT id, MAX(id) FROM myty_komentare");
?>
<b>celkem komentářů:</b>
<?php
echo $posledni;
?>

a stejně se mi nic nezobrazí. Chjo...

Když jsem to udělal na:

<?php
$posledni = mysql_query ("
SELECT MAX(id) FROM myty_komentare");
?>
<b>celkem komentářů:</b>
<?php
echo $posledni;
?>

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. :-)

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:

$posledni = mysql_query ("SELECT MAX(id) FROM myty_komentare") or die(mysql_error());
echo "<b>celkem komentářů: </b>";
echo mysql_result($posledni, 0);

Zpět do poradny Odpovědět na původní otázku Nahoru

loading...