| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 04.12.07 Prihlásený: 05.11.15 Príspevky: 347 Témy: 51 Bydlisko: Internet | Napísal pa3ck: 08.03.2011 11:31 | |
|
Zdravím... Robím jeden portál, v ktorom sú články. V týchto článkoch si zapisujem aj klucove slová. Na klucove slova mam specialnu tabulku v tvare:
Kód: id | id_clanku | tag Na stránke sa mi zobrazuju tieto clanky, a pod nim mam podobne clanky. A teraz, ked v danom clanku je nejaky tag s inymi tagmi u ineho clanku, tak sa mi zobrazia linky na tieto clanky. Lenze neiktory clanok ma s inymi clankami viac rovnakych tagov, a napr. niektory link na clanok mi napise tolko krat, kolko maju spolocne tagy. Ako dosiahnut, aby sa mi dany link na clanok objavil iba 1x? Tu je nejaky kod:(no, nepozerajte na kvalitu kodu) Kód: // s tabulky tags vyberam riadky, v ktorom sa stlpec id_clanku rovna s id článkom $sql_tagy = "SELECT * FROM tags WHERE id_clanku = '".$vypis_clanku["id"]."' "; $result_tagy = mysql_query($sql_tagy, $connect); while ($vypis_tagy=mysql_fetch_array($result_tagy)) {
// s tabulky tags vyberam návody, v ktorom v stlpci "tag" ma take iste slovo ako daná novinka $sql_tags = "SELECT * FROM tags WHERE tag = '".$vypis_tagy["tag"]."' "; $result_tags = mysql_query($sql); while ($vypis_tags=mysql_fetch_array($result_tags))
{
// takze mam id jednotlivych clankoch, kde sa nachadzaju tieto tagy. A teraz uz len vypisem dane clanky $sql_sql = "SELECT * FROM clanky WHERE id = '".$vypis_tags["id_clanku"]."' AND id != '".$vypis_clanku["id"]."' "; $result_sql = mysql_query($sql_sql, $connect); while ($vypis_sql=mysql_fetch_array($result_sql)) { echo"<a href=index.php> ".$vypis_sql["nazov_clanku"]."</a><br> "; } } }
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
napr. DISTINCT, GROUP BY, nechapem vsak, na co robis tolko zbytocnych selectov
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 04.12.07 Prihlásený: 05.11.15 Príspevky: 347 Témy: 51 Bydlisko: Internet | Napísal autor témy pa3ck: 21.03.2011 15:27 | |
|
Môžem sa opýtať, ktorý je tu zbytočný select, lebo skúšam nad tým kódom, skúšam a nejde mi to... Asi sa jedna o prve dva selecty, ale ako urobiť, aby sa mi zobrazovali ID článkov, v ktorých sa nachádza aspoň jedno z kľúčových slov bez predchádzajúceho zistenia, že aké kľúčové slová patria k danému článku?
A mohol by som sa ťa spýtať, ako s tým groupom, lebo skúšal som to dať, ale nejako to nejde. Lebo tak sa mi zdá, že ono každé slovo hľadá osobitne, takže na jedno kľúčové slovo nenájde dva rovnaké články.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
jeden vnoreny select a mas to vyriesene... nepotrebujes pouzivat 3 selecty a este k tomu 2 z nich opakovane volane v cykle...
ako si pouzival ten group by? daj priklad, v ktorom ti to neslo...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 04.12.07 Prihlásený: 05.11.15 Príspevky: 347 Témy: 51 Bydlisko: Internet | Napísal autor témy pa3ck: 22.03.2011 20:53 | |
|
Tak, v tom kode co som poslal, dal som to do druheho selectu a dal som zoskupit podľa id_clanku po WHERE.
Inak, ked sme uz v tom, tak skusal som vnorene odkazy,
Kód: "SELECT * FROM tags WHERE tag = (SELECT (tag) FROM tags WHERE id_clanku = '".$vypis_clanku["id"]."') "
A ked som dal zobrazit vyhovujuce data, tak mi vypislao iba nejaku chybu, mozes, mi prosim povedat, kde je chyba?
|
|
Registrovaný: 20.10.08 Prihlásený: 21.06.22 Príspevky: 2602 Témy: 31 Bydlisko: Bratislava |
nauc sa joinovat, lebo hento je hroza a strach nainstaluj si mysql workbench (je zadarmo) a mas tam konzolu a mozes nad databazou veselo skusat prikazy az potom to implementovat uz funkcne rovno do kodu...
_________________ Desktop: iMac 21" CPU: i5 2.7GHz RAM: 4 GB DDR3 1333MHz GPU: AMD Radeon HD 6770M 512MB RAM HDD: 1TB 7200 rpm OS: Mac OS X Lion Desktop: CPU: AMD Phenom II x4 BE 955 3.2@3.6GHz 1.35@1.30V CPU Cooler: Gelid Tranquillo rev.2 MB: Gigabyte 880GM-UD2H RAM: 2x2 GB Kingston 1333MHz GPU: MSI HD 6850 Cyclone 1GB PSU: Seasonic S12II-620 620W HDD: Seagate Barracuda 7200.12 1TB Case: CoolerMaster Elite 333 LCD: 22" LG flatron W2261VP Keyboard: Microsoft Comfort Curve 2000 Mouse: Microsoft Wireless Mobile Mouse 4000 OS: Windows 8 Notebook: Macbook Pro 13" CPU: i5 2.4GHz RAM: 4 GB DDR3 1333MHz GPU: Intel HD Graphics 3000 384MB RAM HDD: 500GB 5400 rpm OS: Mac OS X Lion Tablet: iPad 2 64GB 3G Phone: HTC Desire S Phone: iPhone 8GB |
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|