Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: složitější MySQL dotaz

PHP PHP složitější MySQL dotaz American English version English version

Aktivity (1)
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
Redaktor
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  +1 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
Nesnáším {}, proto se jim vyhýbám.
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.