Autor | Zpráva | ||
---|---|---|---|
Grs Profil * |
#1 · Zasláno: 24. 2. 2013, 11:43:31
Dobrý den,
předem bych rád zmínil, že mi Google nepomohl a tak si nejsem jist, zda-li je můj problém vůbec řešitelný. Mám jednu tabulku a v té sloupce. Jedná se o phpBB a o to, že každý má na svůj profil možnost vložit dvě YT videa. Takže tabulka phpbb_users a sloupce youtube_1 a youtube_2 Ta YT videa potřebuji vytáhnou, což mám, ale jako dva výpisy. Potřeboval bych to jako jeden výpis. Tedy nějak sloučit. Poradil by mi někdo, prosím? |
||
juriad Profil |
#2 · Zasláno: 24. 2. 2013, 11:45:27
Ukaž nám svůj (relevantní) kód, může to být opravdu jen prkotina.
|
||
Grs Profil * |
#3 · Zasláno: 24. 2. 2013, 11:51:13
Mám to takto rozdělené:
$last_tube = ''; $sql = "SELECT youtube_1 FROM " . USERS_TABLE . " WHERE p_youtube_vid_1 NOT LIKE '' ORDER BY RAND()"; $result = $db->sql_query_limit($sql, 2); while ($row = $db->sql_fetchrow($result)) { $last_tube .= '<a href="http://www.youtube.com/watch?v=' . $row['youtube_1'] . '" onclick="window.open(this.href); return false;"><img src="http://i4.ytimg.com/vi/' . $row['youtube_1'] . '/0.jpg" alt="" /></a>'; } $db->sql_freeresult($result); /**************/ $last_tube2 = ''; $sql = "SELECT youtube_2 FROM " . USERS_TABLE . " WHERE p_youtube_vid_2 NOT LIKE '' ORDER BY RAND()"; $result = $db->sql_query_limit($sql, 2); while ($row = $db->sql_fetchrow($result)) { $last_tube2 .= '<a href="http://www.youtube.com/watch?v=' . $row['youtube_2'] . '" onclick="window.open(this.href); return false;"><img src="http://i4.ytimg.com/vi/' . $row['youtube_2'] . '/0.jpg" alt="" /></a>'; } $db->sql_freeresult($result); $template->assign_vars(array( 'LAST_TUBE' => $last_tube, 'LAST_TUBE_TWO' => $last_tube2, )); |
||
Monkeys Profil * |
#4 · Zasláno: 24. 2. 2013, 12:00:36
2 tabulky mozes pojit napr. takto:
SELECT tableA.*, tableB.* FROM tableA LEFT JOIN tableB ON tableA.ID=tableB.ID WHERE /neaka podmienka/ M: |
||
juriad Profil |
Rozmysli si, zda vždy (až do konce světa) bude mít uživatel možnost jen dvou videí. Přidat později další sloupec nebude správné řešení.
Ale pokud VŽDY budou maximálně dvě, šlo použít SELECT: (SELECT youtube_1 FROM " . USERS_TABLE . " WHERE p_youtube_vid_1 <> '' ORDER BY RAND() LIMIT 1) UNION (SELECT youtube_2 FROM " . USERS_TABLE . " WHERE p_youtube_vid_2 <> '' ORDER BY RAND() LIMIT 1) |
||
Grs Profil * |
#6 · Zasláno: 24. 2. 2013, 12:33:29 · Upravil/a: Grs
Teď si nejsem jistý, zda-li to řeší můj problém. Nejsem v tom přeborník, tak mne když tak omluvte. Zkusím svůj problém ještě přiblížit.
Momentálně to mám takto (jako příklady jména): Výpis youtube_1: jarda, vojtěch Výpis youtube_2: kateřina, lenka Mám to dané za sebou, takže to vypadá takto: jarda, vojtěch, kateřina, lenka Protože je to náhodně, tak při F5 tak třeba zase: vojtěch, jarda, lenka, kateřina A potřebuji například to takto: jarda, kateřina, lenka, vojtěch Při F5 zase pro příklad: kateřina, vojtěch, lenka, jarda Takže bych potřeboval nejspíš nějak youtube_1 a youtube_2 sloučit třeba do $youtube_1_2, abych to mohl použít pro výpis: $last_tube1_2 .= '<a href="http://www.youtube.com/watch?v=' . $youtube_1_2 . '" onclick="window.open(this.href); return false;"><img src="http://i4.ytimg.com/vi/' . $youtube_1_2 . '/0.jpg" alt="" /></a>'; Já a vysvětlování, snad to pochopíte. :) Aby se tam náhodně generovalo ID YouTube videa z obou sloupců. |
||
juriad Profil |
Aha, zruš sloupce p_youtube_vid_[12], vytvoř další tabulku youtube_vids se schématem:
id - id videa - AUTOINCREMENT video - bude obsahovat to, co je teď v p_youtube_vid_[12] uzivatel - id uživatele z tabulky USERS_TABLE pridano - datum přidání přidání videa (pro uživatele) bude provedeno: INSERT INTO youtube_vids (video, uzivatel) VALUES ("video_uzivatele_3", 3) jejich výpis (pro jednoho uživatele): SELECT * FROM youtube_vids WHERE uzivatel = 3 ORDER BY pridano ASC náhodný výpis deseti videí: SELECT * FROM youtube_vids ORDER BY RAND() LIMIT 10 v existujícím řešení (přesto silně doporučuji: předělej to): (SELECT p_youtube_vid_1 AS video FROM USERS_TABLE WHERE p_youtube_vid_1 <> '') UNION (SELECT p_youtube_vid_2 AS video FROM USERS_TABLE WHERE p_youtube_vid_2 <> '') ORDER BY RAND() LIMIT 10 |
||
Grs Profil * |
#8 · Zasláno: 24. 2. 2013, 15:06:19
To by se mi zrovna hodilo, ale je to na mne už moc složité, protože i když to pochopím, tak prostě netuším, jak to do toho phpBB nacpat.
|
||
Grs Profil * |
#9 · Zasláno: 24. 2. 2013, 20:22:22
Mimochodem mockrát děkuji za reakce.
|
||
Časová prodleva: 11 let
|
0