Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: složitější MySQL dotaz

Aktivity
Avatar
kom72
Člen
Avatar
kom72:12.3.2016 12:15

Ahoj, vypisuji z DB fotografie takto:

}
$colname_kategorie_vypis = "-1";
if (isset($_GET['kategorie_id'])) {
  $colname_kategorie_vypis = $_GET['kategorie_id'];
}

mysql_select_db($database_pripojeni_MySQL, $pripojeni_MySQL);
$query_kategorie_vypis = sprintf("SELECT * FROM kategorie WHERE kategorie_id = %s", GetSQLValueString($colname_kategorie_vypis, "int"));
$kategorie_vypis = mysql_query($query_kategorie_vypis, $pripojeni_MySQL) or die(mysql_error());
$row_kategorie_vypis = mysql_fetch_assoc($kategorie_vypis);
$totalRows_kategorie_vypis = mysql_num_rows($kategorie_vypis);

if($colname_kategorie_vypis == "3") {

        $where = "";

} else {

        $where = " WHERE kategorie_id = " . GetSQLValueString($colname_kategorie_vypis, "int");

}

$query_kategorie_fotky = "SELECT * FROM fotografie" . $where . " ORDER BY datum_vlozeni DESC";
$kategorie_fotky = mysql_query($query_kategorie_fotky, $pripojeni_MySQL) or die('fotky' . mysql_error());
$row_kategorie_fotky = mysql_fetch_assoc($kategorie_fotky);
$totalRows_kategorie_fotky = mysql_num_rows($kategorie_fotky);
?>

html:

<img class="kategorie_vypis_fotky stin" src="fotky/<?php echo $row_kategorie_fotky['kategorie']; ?>/<?php echo $row_kategorie_fotky['fotka']; ?>_nahled.jpg" alt="">

živá ukázka:
http://www.kom72.cz/index.php?…

V DB mám dve tabulky: fotografie a kategorie. ID jednotlivych kategorií v tabulce kategorie = sloupci kategorie_id v tabulce fotografie, ktery urcuje, kde se fotka zobrazi. K tomu je jeste v teto tabulce sloupec kategorie, ktery urcuje, v ktere slozce je fotografie ulozena.
Potreboval bych mit moznost, fotografii priradit vice kategorií v kterych bude zobrazena.

Zrejme bych zvladnul toto:
zrusim ulozeni fotek ve slozkach a vsechny budou v jedne slozce dohromady. V DB, fotce priradim jeste dalsi treba 3 sloupce: kategorie_id2, kategorie_id3 atd. a tam zapisu v kterych kategoriích muze byt fotka jeste zobrazena.

Samozrejme to musi jit nejak elegantneji. Nasmeruje mne nekdo, jak na to? Jen upozornuji, ze PHP moc nerozumim. I ty zakladni prikazy mi trvaji dny, nez je jakz takz pochopim...

 
Odpovědět
12.3.2016 12:15
Avatar
mayo505
Tvůrce
Avatar
Odpovídá na kom72
mayo505:12.3.2016 12:51

Je to vzťah many-to-many a to sa dá vyriešiť treťou (pivotnou) tabuľkou, ktorá bude mať stĺpce iba kategoria_id a fotografia_id a tým ich pospája dokopy.

 
Nahoru Odpovědět
12.3.2016 12:51
Avatar
kom72
Člen
Avatar
kom72:12.3.2016 14:24

už se tu tím probírám. jak to ale pak vše vypíšu ,třeba v mém konkretnim pripade? Neni nekde nejaky odkaz v cestine, kde by se to probiralo?

 
Nahoru Odpovědět
12.3.2016 14:24
Avatar
Odpovídá na kom72
Michal Žůrek - misaz:12.3.2016 15:35

zde v kategorii o databázích.

 
Nahoru Odpovědět
12.3.2016 15:35
Avatar
kom72
Člen
Avatar
kom72:12.3.2016 16:13

pokud myslis tohle:
http://www.itnetwork.cz/…-a-vazba-m-n
tak vidim, ze je to premierovy clanek...

 
Nahoru Odpovědět
12.3.2016 16:13
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na kom72
Tonda Kozák:12.3.2016 17:56

http://www.linuxsoft.cz/article.php?… + zbytek seriálu. Sice starší, ale ono se toho v SQL toho zásadního tak moc nezměnilo.

 
Nahoru Odpovědět
12.3.2016 17:56
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.