Autor | Zpráva | ||
---|---|---|---|
frost Profil * |
#1 · Zasláno: 9. 11. 2007, 10:46:13
$vysledek_cas=mysql_query("select cas, max(lcas) from takticke_informace where jmeno='".$zaznam["jmeno"]."'");
Jsem ztracen, prosím vás netušíte někdo proč mi tato syntax nevrací žádnou hodnotu? Předem díky všem. |
||
djlj Profil |
#2 · Zasláno: 9. 11. 2007, 10:47:18
GROUP BY cas
|
||
frost Profil * |
#3 · Zasláno: 9. 11. 2007, 10:53:30
Děkuji, jste tady opravdu skvělá parta. :)
|
||
frost Profil * |
#4 · Zasláno: 9. 11. 2007, 11:14:00
Další problém, jako začátečník tomu nerozumí.
$vysledek_cas=mysql_query("select cas, max(lcas) from takticke_informace where jmeno='".$zaznam["jmeno"]."' group by cas"); Proč mi tento řetězec vypíše hodnotu cas, která náleží nejmenší hodnotě lcas? Vždyť by to mělo být obráceně, nebo ne? |
||
djlj Profil |
#5 · Zasláno: 9. 11. 2007, 11:32:01
Já jsem na to nějak blíž nekoukal, asi bude lepší to GROUPnout podle jména — GROUB BY jmeno.
|
||
Mastodont Profil |
#6 · Zasláno: 9. 11. 2007, 11:35:14
Prrotože ten dotaz vypíše max(lcas) pro všechny časy (cas), které jsou v tabulce zapsány pro dané jméno. Čili nemusí vrátit jen jeden záznam, ale klidně víc.
Ten dotaz, co jsi napsal, funguje takto: nejprve jsou vyhledány všechny záznamy pro dané jméno (WHERE). V těchto záznamech je poté pro každý jedinečný údaj (GROUP BY) ve sloupci cas zjištěna maximální hodnota ve sloupci lcas. Nakonec je vypsáno tolik řádků, kolik bylo nalezeno časů (cas) pro dané jméno, a k tomu je přidán do druhého sloupce max(lcas). |
||
frost Profil * |
#7 · Zasláno: 9. 11. 2007, 11:51:24
print_r vrací pouze toto:
Array ( [0] => 09.11.2007 08:03:11 [cas] => 09.11.2007 08:03:11 [1] => 1194591791 [max(lcas)] => 1194591791 ) Hodnota max(lcas) => 1194591791 je nejmenší u jména v podmínce, ale já potřebuji, aby hodnotě max(lcas) byla přiřazena nejvyšší hodnota patřící jménu v podmínce. |
||
Mastodont Profil |
#8 · Zasláno: 9. 11. 2007, 11:54:18
select max(lcas) from takticke_informace where jmeno= .$zaznam["jmeno"]
Uvozovky si doplň. |
||
frost Profil * |
#9 · Zasláno: 9. 11. 2007, 12:01:47
jj to vím díky, ale mě jde o ten hodnotu cas já potřebuji zobrazit čas patřící k max(lcas)
|
||
frost Profil * |
#10 · Zasláno: 9. 11. 2007, 12:02:08
jj to vím díky, ale mě jde o ten hodnotu cas já potřebuji zobrazit čas patřící k max(lcas)
|
||
Časová prodleva: 12 dní
|
|||
med Profil * |
#11 · Zasláno: 21. 11. 2007, 17:04:42
taky bych měl dotaz jestli můžu.... jak mam udelat aby my SELECT Max(cislo) vratilo to nejvetsi cislo kdyz v sloupci cislo mam treba 2,3,5,7,8 vzdycky mi to vrati 3protoze tam chyby ta 4
|
||
djlj Profil |
#12 · Zasláno: 22. 11. 2007, 02:10:23
med
Tak asi děláš něco špatně, protože to běžně vybere nejvyšší číslo, i když třeba chybí všechna předchozí čísla. Možná nemáš nastaven číselný datový typ, ale v tom nejspíš zde problém nebude. |
||
Kajman_ Profil * |
#13 · Zasláno: 22. 11. 2007, 09:00:47
A není ta trojka číslo resultu místo hodnoty z něho?
|
||
BetaCam Profil |
#14 · Zasláno: 22. 11. 2007, 10:48:00
select cas, max(lcas) AS maxCas from takticke_informace where jmeno='".$zaznam["jmeno"]."' GROUP BY jmeno
vrací největší datum u jména. SELECT MAX(cislo) AS maxCislo FROM tabulka vrací největší číslo bez ohledu na to jestli ti tam v číselný ředě nejaký číslo bude chybět nebo ne |
||
Časová prodleva: 4 měsíce
|
|||
matlala Profil |
#15 · Zasláno: 2. 4. 2008, 08:48:05
Ahoj,
objevil jsem tuto diskusi, zrovna potřebuju poradit s tím samým: potřebuju zjistit nejvyší id_fotky v tabulce, id_fotky má auto_icrement, abych pak stejným id pojmenoval nahrávanou fotku a orientoval se v nich-id_fotky bude unikátní fotka a záznam tento dotaz: $max=mysql_query("select MAX(id_fotky) from akva_galerie order by id_fotky DESC"); echo $max; hodí tohle: Resource id #10 |
||
nightfish Profil |
#16 · Zasláno: 2. 4. 2008, 09:34:42
potřebuju zjistit nejvyší id_fotky v tabulce, id_fotky má auto_icrement, abych pak stejným id pojmenoval nahrávanou fotku
pokud máš sloupec typu auto_increment, nepotřebuješ zjistit největší id, ale poslední vložené id, k tomu slouží funkce mysql_insert_id(), kterou zavoláš po insertu pokud použiješ řešení max(id_fotky), můžeš se jednoduše dostat do problémů, když 2 uživatelé vloží fotku zároveň - vysvětlím na příkladu, 2 uživatelé (A a B) vkládají fotku současně, kód je (vč. čísel řádků): 1. insert... 2. select max(id) může dojít k situaci, že se skripty provedou v pořadí A1, B1, A2, B2: A1 - insert, id vloženého řádku 1 B1 - insert, id vloženého řádku 2 A2 - select max(id) - vrátí 2, protože ta je v tabulce aktuálně největší B2 - select max(id) - vrátí taktéž 2 a problém je na světě tento dotaz: $max=mysql_query("select MAX(id_fotky) from akva_galerie order by id_fotky DESC"); echo $max; hodí tohle: Resource id #10 možná bude dobré si přečíst něco o práci s databází v php viz http://www.linuxsoft.cz/article.php?id_article=344 nebo http://cz.php.net/mysql_result nebo http://cz.php.net/mysql_fetch_array |
||
matlala Profil |
#17 · Zasláno: 2. 4. 2008, 17:03:17
ono je to jinak, je to jenom moje administrace, mám osobní web a málo mísžta-stačí tak pro moje fotky,
a potřebuju zjistit nejvyššší id_fotky a pak id_fotky+1 bude název nahraného fota a zároven se zatíše do DB =>vztah mezi tabulkou a fotkou bude v ID |
||
Časová prodleva: 3 měsíce
|
|||
Juliano Profil * |
#18 · Zasláno: 24. 6. 2008, 15:07:57
Já sem teďka taky řešil, jak zjistit nejvyšší číslo v databázi. v mym případě to je ID uživatele...
Co sem koukal tady, myslim, že to řešíte moc komplikovaně... Určitě snažší je tenhle způsob :) $conn_test=mysql_query("SELECT * FROM uzivatele ORDER BY id ASC"); $x=1; while($test=mysql_fetch_array($conn_test)){ $y=$test["id"]; $x++; } echo $y; Pro neznalý ho popíšu :) Nejdřív connect do databáze... třeba takovej... (require_once "databaze.php"; // například) Pak connect ($conn_test) do tabulky, ze který chcete to nejvyšší číslo, seřadit od nejmenšího čísla po nejvyšší... Cyklus while pojede dokud mu nedojdou řádky s ID a do proměnné $y se dá vždy daná hodnota ID... To znamená, že posledním cyklem bude do $y dáno nejvyšší ID v databázi :) pak to hodí false a my můžeme vesele dál pracovat s $y kde bude nejvyšší ID :-D |
||
Časová prodleva: 7 měsíců
|
|||
bedna Profil * |
#19 · Zasláno: 27. 1. 2009, 20:10:31
Pro neznalý píšu Proč je tam to $x? A proc ne treba
SELECT id FROM tabulka ORDER BY id DESC LIMIT 1 |
||
AM_ Profil |
#20 · Zasláno: 27. 1. 2009, 21:41:44
bedna
Tohle téma je půl roku starý... asi už ho to nezajíma. |
||
Časová prodleva: 6 měsíců
|
|||
Juliano Profil * |
#21 · Zasláno: 14. 7. 2009, 04:03:56
bedna: Dal sem to jako příklad jinýho systému řešení, neřikam, že je nejlepší ani, že je skvělý a super... Mě může bejt tahle problematika celkem ukradená a moc sem nad tim nepřemejšlel, jen mě to tak při čtení tohodle článku napadlo... :))
|
||
tiso Profil |
Na čase zammknúť...
Moderátor Chamurappi: Proč? Nejsou snad ty poslední příspěvky (vyjma #20) k tématu?
|
||
tiso Profil |
Chamurappi: preto:
frost #1 · Zasláno: 9.11.2007 10:46:13 Moderátor Chamurappi: Stáří není důvod k zamčení, proto stará vlákna nezamykáme automaticky. Stará vlákna nacházejí lidé pomocí vyhledávačů a mají-li něco zajímavého k doplnění (pro další, kdo je najdou), nebudeme jim upírat možnost.
|
||
Časová prodleva: 15 let
|
0