Zadejte hledaný výraz...

MySQL – MAX

php student
verified
rating uzivatele
25. 3. 2011 02:39:14
Dobrý den
nevím si rady s jedním SQL dotazem. Chci ze sloupce id získat nejvyšší hodnotu. Jenže např.
"SELECT id, MAX(id) FROM tabulka" - vrací 1 (mělo by 58)
a
"SELECT MAX(id) FROM tabulka"
vrací chybu
Notice: Undefined property: stdClass::$id in.....
používám k tomu mysqli a funkci fetch_object.
Přitom když zadám dotaz
"SELECT id, name, abstrakt, text FROM tabulka" (zkrátka vypsání celé tabulky) tak je vše naprosto v pořádku.
Laboroval jsem s tím celý večer a fakt už nevím.
Ještě doplním že když ty dotazy napíšu do admineru, tak fungují. Že by to bylo v php?
Předem díky za radu, určitě to bude nějaká prkotina....
25. 3. 2011 02:39:14
https://webtrh.cz/diskuse/mysql-max#reply622065
Petyk
verified
rating uzivatele
(3 hodnocení)
25. 3. 2011 07:45:04
zkus SELECT id, MAX(id) AS maximum FROM tabulka
25. 3. 2011 07:45:04
https://webtrh.cz/diskuse/mysql-max#reply622064
Petr
verified
rating uzivatele
(9 hodnocení)
25. 3. 2011 07:51:27
hosi vzdyt je to picovina :-)
celej kod (ilustracni) v PHP ktery by mel slapat:
$q = mysql_query("SELECT MAX(id) FROM table_name");
$data = mysql_fetch_array($q);
echo $data;
----------------------
easy :-)
PS: Pisu to z hlavy.. kdyby to nefakalo dej mi vedet.. napisu to presne v PHPku a poslu Ti soubor..
EDIT1: je dobre se naucit pouzivat tzv "echo debbugger" kde si budes postupne vypisovat vse a tak zjistis kde je chyba a proc :-)
EDIT2: jak tu psal kolega nade mnou, je dobre pouzivat aliasy :-) pak vis na ktery atribut se odkazujes.. zvlast u techto funkci..
25. 3. 2011 07:51:27
https://webtrh.cz/diskuse/mysql-max#reply622063
Zrejme bude chyba nekde v phpku... "SELECT id, MAX(id) FROM tabulka" je urco spravne
Doplneni k reakci od uzivatele naniccz:
***************
"SELECT id, MAX(id) FROM tabulka" urco spravne neni, kdyz pouziva agregacni funkci na sloupec, ktery zaroven selectuje, tak co by mela ta neboha databaze asi tak vratit, kdyz to nema podle ceho groupnout?
***************
Nevim jak tobe, ale mi " select max(id) from tb " funguje bez problemu
25. 3. 2011 07:53:44
https://webtrh.cz/diskuse/mysql-max#reply622062
naniccz
verified
rating uzivatele
(3 hodnocení)
25. 3. 2011 08:27:12
"SELECT id, MAX(id) FROM tabulka" urco spravne neni, kdyz pouziva agregacni funkci na sloupec, ktery zaroven selectuje, tak co by mela ta neboha databaze asi tak vratit, kdyz to nema podle ceho groupnout?
25. 3. 2011 08:27:12
https://webtrh.cz/diskuse/mysql-max#reply622061
Petr
verified
rating uzivatele
(9 hodnocení)
25. 3. 2011 08:45:17
Napsal winexec;639731
Zrejme bude chyba nekde v phpku... "SELECT id, MAX(id) FROM tabulka" je urco spravne
Doplneni k reakci od uzivatele naniccz:
***************
"SELECT id, MAX(id) FROM tabulka" urco spravne neni, kdyz pouziva agregacni funkci na sloupec, ktery zaroven selectuje, tak co by mela ta neboha databaze asi tak vratit, kdyz to nema podle ceho groupnout?
***************
Nevim jak tobe, ale mi " select max(id) from tb " funguje bez problemu
support pro winexec a odpoved pro imaginarni prispevek naniccz-e:
groupovani neni treba kdyz se vraci pouze jeden atribut. pokud by se jich vracelo vice, pak by bylo treba to groupnout ;-) takto to neni treba
25. 3. 2011 08:45:17
https://webtrh.cz/diskuse/mysql-max#reply622060
Vladimír Benc
verified
rating uzivatele
(7 hodnocení)
25. 3. 2011 08:58:39
Napsal NSBM;639738
groupovani neni treba kdyz se vraci pouze jeden atribut. pokud by se jich vracelo vice, pak by bylo treba to groupnout ;-) takto to neni treba
Ono se to vnitřně groupne "samo" na všechny záznamy :)
25. 3. 2011 08:58:39
https://webtrh.cz/diskuse/mysql-max#reply622059
Taps
verified
rating uzivatele
(118 hodnocení)
25. 3. 2011 10:00:41
a co ti vrátí mysql_error ?
25. 3. 2011 10:00:41
https://webtrh.cz/diskuse/mysql-max#reply622058
Václav Mach
verified
rating uzivatele
(13 hodnocení)
25. 3. 2011 14:22:23
to NSBM máš tam $ navíc
SELECT MAX($id) FROM table_name
25. 3. 2011 14:22:23
https://webtrh.cz/diskuse/mysql-max#reply622057
Petr
verified
rating uzivatele
(9 hodnocení)
25. 3. 2011 14:24:55
a jo :-D diky.. dobrej point
UPRAVENO
25. 3. 2011 14:24:55
https://webtrh.cz/diskuse/mysql-max#reply622056
php student
verified
rating uzivatele
25. 3. 2011 14:37:11
@NSBM
Takhle to opravdu funguje bez chybičky. Jenom v tom SQL dotazu nemůže před id být "$". Jenže já jsem používal MySQLi->fetch_object, nejspíš jsem v tom udělal chybu, ale nevím kde. Na ukázku uvádím kus kódu:
Díky moc.
25. 3. 2011 14:37:11
https://webtrh.cz/diskuse/mysql-max#reply622055
Petr
verified
rating uzivatele
(9 hodnocení)
25. 3. 2011 14:47:43
co vypise echo???
zkus vypsat toto: print_r($result);
25. 3. 2011 14:47:43
https://webtrh.cz/diskuse/mysql-max#reply622054
php student
verified
rating uzivatele
25. 3. 2011 15:02:49
print_r vypíše:
echo $result vypíše:
25. 3. 2011 15:02:49
https://webtrh.cz/diskuse/mysql-max#reply622053
Petr
verified
rating uzivatele
(9 hodnocení)
25. 3. 2011 15:28:46
a zkus print_r($edit);
25. 3. 2011 15:28:46
https://webtrh.cz/diskuse/mysql-max#reply622052
php student
verified
rating uzivatele
25. 3. 2011 16:45:13
Ha..
---------- Příspěvek doplněn 25.03.2011 v 18:28 ----------
OK
použil jsem raději fetch_row():
$edit = $resulti->fetch_row())
to vrací
Array ( => 58 )
S tím už se dá pracovat. Škoda, že to stálo takovýho času.
Jinak všem díky moc, hlavně NSBM :-)
25. 3. 2011 16:45:13
https://webtrh.cz/diskuse/mysql-max#reply622051
Pro odpověď se přihlašte.
Přihlásit