Autor | Zpráva | ||
---|---|---|---|
gumit Profil |
#1 · Zasláno: 31. 7. 2011, 14:36:25
Dobrý den,
chtěl bych Vás požádat o pomoc s mým problémem. Kolem PHP s MySQL se pohybuji krátkou dobu ale k věci, potřeboval bych pomoci s tím, že mám dvě tabulky články a akce, a chtěl bych tyhle dvě tabulky vypsat na hlavní straně, aby byly pod sebou řazeny pomoci datumu. Už si s tím hraju necelý den a nevím jak dál tak sem přišel zde požádat o pomoc. Kdyby jste něčemu nerozumněli rád zodpovím případné další informace.. Vysvětlení situace: První tabulka struktura: CREATE TABLE IF NOT EXISTS `akce` ( `id` int(11) NOT NULL AUTO_INCREMENT, `datum` int(10) unsigned NOT NULL, `nazev` text NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`)); data z první tabulky: `akce` (`id`, `datum`, `nazev`, `text`) VALUES (1, 1312106272, 'Toto je akce', 'toto je text akce'), vypisuji takhle podle dotazu, nevím jestli tak je to správně. Ale nevím jak to zprostředkovat tak aby se vypisovali obě a řadili se podle datumu. =( $precti = mysql_query("SELECT * FROM akce ORDER BY id DESC"); while ($row = mysql_fetch_row($precti)) { echo $row[2]."<br />"; echo date("d.m.Y",$row[1])."<br />"; echo $row[3]."<br /><br />"; } druhá tabulka vypadá stejně jen se nazývá novinky. A já bych potřeboval vědět, jak bych měl zapsat správně dotaz v php, na který já neumím přijít =(. Děkuji za veškerou pomoc, rady a tipy... |
||
Tomáš K. Profil * |
#2 · Zasláno: 31. 7. 2011, 15:07:05
Datum by mělo mít typ DATE.
SELECT nazev, datum, text FROM (SELECT nazev, datum, text FROM akce UNION SELECT nazev, datum, text FROM novinky) ORDER BY datum |
||
gumit Profil |
#3 · Zasláno: 31. 7. 2011, 15:21:10
No a není to jedno jestli je to v DATE? A trochu sme se asi nepochopily...
Mám dvě tabulky. Novinky a Akce. Na hlavní stránce bych chtěl aby se zobrazovali novinky a akce pod sebou jak jdou v datumu názorně: Aktualita datum: 15.05.2011 aktualita. Akce Z datum: 14.05.2011 neco neco neco |
||
Taps Profil |
#4 · Zasláno: 31. 7. 2011, 15:31:34
gumit:
„No a není to jedno jestli je to v DATE“ Ne není. Pokud by sloupeček nebyl typu date tak by nebylo možné akce řadit. zkoušel jsi sql dotaz od Tomáš K. ? |
||
gumit Profil |
#5 · Zasláno: 31. 7. 2011, 15:41:43 · Upravil/a: gumit
Ano zkoušel a vypisuje mi to chybu.
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in .. on line 14 a na tom mam tohle while ($row = mysql_fetch_row($precti)) nevím jestli to mam řešít přes while... A k tomu jak to změním na DATE musel bych přepsat také zápis do tabulky jestli se nemylím se že? novinky tam se to zadavá pomocí time(); a v akcích to datum vybírám přes select. |
||
TomášK Profil |
#6 · Zasláno: 31. 7. 2011, 16:10:23 · Upravil/a: TomášK
Zjisti, co je to za chybu (viz FAQ). Zřejmě je jen potřeba oescapovat sloupce, text vyhrazeno pro datovtý typ:
SELECT `nazev`, `datum`, `text` FROM (SELECT `nazev`, `datum`, `text` FROM akce UNION SELECT `nazev`, `datum`, `text` FROM novinky) ORDER BY `datum` Výpis v php zůstane stejný. Co se týče sloupce pro datum, může to fungovat i bez něj, pokud je to číslo počet sekund/milisekund od nějaké doby (vypadá tak). Ale i tak je rozumné ukládat datum jako datum. |
||
gumit Profil |
#7 · Zasláno: 1. 8. 2011, 15:37:38 · Upravil/a: gumit
Použil jsem v DB ten DATE jak jsi mi radil, rozchodil jsem to ale, měl bych dotaz jak mám předat databázi datum z mých selectu aby to MySQL pochopila co je to za vybraný datum v mých selectech... Jak tohle mám udělat? Poraďte.
Edit: Problém se selecty vyřešen.. Teď udělat jen porovnání těch datumů a mám vše co sem chtěl =) |
||
gumit Profil |
#8 · Zasláno: 1. 8. 2011, 15:55:05 · Upravil/a: gumit
Po zapsaní vašeho dotazu mi to vypisuje tohle : Every derived table must have its own alias
Script vypadá takhle: $precti = "SELECT `nazev`, `datum`, `text` FROM (SELECT `nazev`, `datum`, `text` FROM cas UNION SELECT `nazev`, `datum`, `text` FROM akce) ORDER BY `datum`"; $test = mysql_query($precti) or die (mysql_error()); while ($row = mysql_fetch_array($precti)) { echo $row["nazev"]."<br />"; echo $row["datum"]."<br />"; echo $row["text"]."<br /><br />"; } a řádek v tabulkách vypadá stejně... Jen je jiné datum id datum nazev text 2 2011-07-31 akce 0 akce 0 Kde myslíte že bude chyba? Děkuji za každou odpověď... |
||
Kajman_ Profil * |
#9 · Zasláno: 1. 8. 2011, 16:01:17
Bude to chybějícím aliasem - konkrétně za tou závorkou.
from () mujalias order by |
||
gumit Profil |
#10 · Zasláno: 1. 8. 2011, 16:15:41
no tak zkusil jsem co jsi mi doporučil a hlasí mi tohle:
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in index.php on line 15 a tam mam : while ($row = mysql_fetch_array($precti)) při zápisu: $precti = "SELECT Date_Format(datum, '%d.%m.%Y') as datum, nazev, text FROM (SELECT `nazev`, `datum`, `text` FROM akce UNION SELECT `nazev`, `datum`, `text` FROM cas) mujalias ORDER BY `datum`"; Tak já nevim jestli jsem to pochopil správně :-/ |
||
Kajman_ Profil * |
#11 · Zasláno: 1. 8. 2011, 16:36:08
while ($row = mysql_fetch_array($test)) |
||
gumit Profil |
#12 · Zasláno: 1. 8. 2011, 16:56:06 · Upravil/a: gumit
Vyřešene všechno děkuji za Vaši veškerou pomoc =) a taky uživateli Kajman_ =)
|
||
Časová prodleva: 3 měsíce
|
|||
NouF Profil |
#13 · Zasláno: 28. 10. 2011, 08:49:59
Měl bych dotaz..mám 2 tabulky jako uživatel co to tu založil ale chci k tomu ješte něco..
Použití: souhrn komentářů na stránkách ( v profilu uživatele se zobrazí kde co komentoval) Co potřebuju: Jak sem napsal je to souhrn komentářu součástí vypisu z db je taky seo odkaz. např Komentář - 28.10.2011 8:48 titulek-toho-co-komentuju a tenhle vypis bude pod odkazem např.: /news/seo_link.html nebo /gallery/seo_link.html Lze nejak určit puvod toho vypisu abych mohl podminkou měnit ten odkaz? |
||
Kajman_ Profil * |
#14 · Zasláno: 28. 10. 2011, 11:18:39
select 'news' puvod, ostatni, sloupce ... union select 'gallery' puvod, ostatni, sloupce ... |
||
NouF Profil |
#15 · Zasláno: 28. 10. 2011, 13:22:29
Díky, mrknu a napišu jestli se mi to podařilo..
|
||
Časová prodleva: 12 let
|
0