Autor | Zpráva | ||
---|---|---|---|
hulk Profil * |
#1 · Zasláno: 25. 12. 2013, 10:17:30
Dobrý den,
dělám si takovej malej přehled. Mám dvě tabulky a to aukce a výherce. Problém mám, že potřebuju aby vyhodil výsledky pouze nejvyšší ceny (prihozy). Už jsem byl tak zoufalej, že jsem se chtěl podívat co to udělá, když dám ASC, ale to mi vyhazuje jen chybu: Warning: mysql_result() expects parameter 1 to be resource, boolean given Ví někdo jak to mám správně zapsat? Jde mi o to, že potřebuju aby se splnila podmínka pro výpis a potom vypsal jen záznamy co mají nejvyšší příhoz a ty co mají nižší, tak aby je ignoroval. $vyhry = mysql_result(mysql_query("SELECT COUNT(us.id) FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_user WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() ORDER BY uz.prihozy ASC"),0); Děkuju, snad mi někdo pomůže
|
||
Taps Profil |
hulk:
pokud používáš agregační funkce tak by mělo následovat i GROUP, zkus níže uvedené SELECT MAX(cena) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_user WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() GROUP BY us.id ORDER BY uz.prihozy DESC |
||
hulk Profil * |
#3 · Zasláno: 25. 12. 2013, 10:29:29 · Upravil/a: hulk
INSERT INTO `aukce` (`id`, `id_user`, `nazev`, `cena`, `min_prihoz`, `text`, `ukonceni`, `objednavky_pocet`, `datum_vlozeni`) VALUES (1, 19, 'Texas', '100.00', '1.00', 'test', '2013-12-25 08:16:21', 16, '2013-12-25 07:50:54') INSERT INTO `aukce_prihozy` (`id`, `id_user`, `id_zbozi`, `kupujici`, `prihoz`, `nabidka`, `kolik`, `datum`) VALUES (1, 19, 1, 19, '114.00', '1.00', '8.00', '2013-12-25 08:15:54'), (2, 19, 1, 10, '115.00', '1.00', '8.00', '2013-12-25 08:20:19'); Tohle bohužel také nefunguje. $vase_vyhry = mysql_result(mysql_query("SELECT MAX(uz.prihozy) as nejvyssi cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_user WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() GROUP BY us.id ORDER BY uz.prihozy ASC"),0);//Tenhle řádek se mu nelíbí (mysql_result() expects parameter 1 to be resource, boolean given) Řádek číslo 8 |
||
Alphard Profil |
#4 · Zasláno: 25. 12. 2013, 10:45:29
A mysql_error() hláška?
|
||
hulk Profil * |
#5 · Zasláno: 25. 12. 2013, 10:53:53
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_user WHERE us.' at line 1
|
||
Alphard Profil |
#6 · Zasláno: 25. 12. 2013, 11:01:24
V aliasu nesmí být mezera, že jsem si toho hned nevšiml :-)
|
||
hulk Profil * |
#7 · Zasláno: 25. 12. 2013, 11:06:02 · Upravil/a: hulk
V jakém aliasu?
Taky jsem už pochopil kde :-) Teď mi to píše: Unknown column 'uz.prihozy' in 'field list' Aktuálně mám teď dotaz postavený takhle: mysql_result(mysql_query("SELECT MAX(uz.prihozy) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_user WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() GROUP BY us.id ORDER BY nejvyssi_cena ASC"),0); |
||
Taps Profil |
#8 · Zasláno: 25. 12. 2013, 11:27:10
hulk:
mysql_result(mysql_query("SELECT MAX(uz.prihoz) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_user WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() GROUP BY us.id ORDER BY nejvyssi_cena ASC"),0); |
||
hulk Profil * |
#9 · Zasláno: 25. 12. 2013, 11:28:24 · Upravil/a: hulk
Chyba vyřešena. Měl jsem tam prihozy, ale v tabulce mám prihoz. Takovej velkej přehmat. Ted to nevypisuje žádnou chybu, ale zároveň ani žádné výsledky.
Děkuju. Jsme se minuli a teď vypadám, že jen dělám chytrýho nad Vašema radama. Tohle byla skutečně chyba, ale teď mi nevypisuje nic. Chyba žádná a výsledek taky ne. Když max zaměním za count, tak už to vypisuje, ale všude jen nuly. Teď to mám takhle a jen nuly. Víte prosím proč? $vase_vyhry = mysql_query("SELECT MAX(uz.prihoz) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.kupujici WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() AND uz.kupujici ='".$vys["id"]."' GROUP BY us.id ORDER BY nejvyssi_cena ASC"); $vase_vyhry = mysql_num_rows($vase_vyhry); Teď to mám takhle a na nic lepšího asi nepřijdu. Podle zdravého rozumu a snad ho ještě mám by to mělo makat. $vase_vyhry = mysql_query("SELECT MAX(uz.prihoz) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_user WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() AND uz.kupujici='".$vys["id"]."' GROUP BY us.id ORDER BY nejvyssi_cena ASC"); $vase_vyhry = mysql_num_rows($vase_vyhry); Jsem blb. Daval jsem špatnou podmínku. Teď mi to konečně vypisuje počet nalezených, ale oba dražitelé mají, že vyhráli. Nějak mi nejde udělat aby to ukázalo jen tomu co ma vyšší příhoz. $vase_vyhry = mysql_query("SELECT MAX(uz.prihoz) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_zbozi WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() AND uz.kupujici='".$vys["id"]."' GROUP BY us.id ORDER BY nejvyssi_cena ASC"); $vase_vyhry = mysql_num_rows($vase_vyhry); Už to začínám chápat, ale asi je nemožný tam doplnit podmínku, která řekne, že někdo jiný přihodil víc, tak to nezapočítá. Ze zoufalství jsem tam napsal tohle: AND uz.prihoz > prihoz Což je jasná kravina, tak jsem to ani netestnul. Hned po napsání mi došlo, že to fungovat nemůže. |
||
hulk Profil * |
#10 · Zasláno: 25. 12. 2013, 12:47:45 · Upravil/a: hulk
Už jsem to vyřešil. Ten join je nářez :-)
Děkuju $vase_vyhry = mysql_result(mysql_query("SELECT COUNT(*) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_zbozi RIGHT JOIN aukce_prihozy d ON d.prihoz < uz.prihoz WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() AND uz.kupujici='".$vys["id"]."'"),0); Takhle mi to funguje super: $vase_vyhry = mysql_result(mysql_query("SELECT COUNT(*) as nejvyssi_cena FROM aukce us LEFT JOIN aukce_prihozy uz ON us.id = uz.id_zbozi WHERE us.objednavky_pocet > '0' AND us.ukonceni < now() AND uz.prihoz > 114 AND uz.kupujici='".$vys["id"]."'"),0); |
||
hulk Profil * |
#11 · Zasláno: 25. 12. 2013, 14:14:48
Nic, už to mám funkční. Děkuji za váš čas
|
||
Časová prodleva: 10 let
|
0