Autor Zpráva
Jack06
Profil
Mám dotaz, jestli lze vybírat na jedné stránce ze dvou tabulek. Jedná se mi o přizpěvky vedené jako forum. Mám 3 tabulky

>>Kategorei
->Témata
->Přízpěvky

A chci aby se mi na základní stránce vypsal jeden pruh se jménem kategorie a pod ním se s odrážkou vypsali všechny témata pod touto kategorií. Bohužel Kategorii beru z jedné tabulky a témata z další. Pls poraďte jakkoliv. Jak mám buď strukturovat tabulky nebo jak vybrat z více na jedné stránce. Děkuji
Alphard
Profil
jestli lze vybírat na jedné stránce ze dvou tabulek
třeba z tisíce
A chci aby se mi na základní stránce vypsal jeden pruh se jménem kategorie a pod ním se s odrážkou vypsali všechny témata pod touto kategorií.
něco jako select * from temata join kategorie order by sloupec
Jack06
Profil
CREATE TABLE `kategorie` (
  `id` int(11) NOT NULL auto_increment,
  `kategorie` varchar(50) character set cp1250 collate cp1250_czech_cs  NOT NULL,  
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs  AUTO_INCREMENT=1 ;

CREATE TABLE `obsah` (
  `id` int(11) NOT NULL auto_increment,
  `kategorie` varchar(50) character set cp1250 collate cp1250_czech_cs  NOT NULL,  
  `obsah` varchar(50) character set cp1250 collate cp1250_czech_cs  NOT NULL,
  `popisek` varchar(255) character set cp1250 collate cp1250_czech_cs  NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs  AUTO_INCREMENT=1 ;


Ok tohle mi vytvoří vdě tabulky kategorie a obsah,

Do tabulky kategorie vytvořím 3 přízpěvky:
          a          //toto má id 1 a kategorie a v tabulce kategorie
          b          //toto má id 2 a kategorie b v tabulce kategorie
          c          //toto má id 3 a kategorie c v tabulce kategorie


Do tabulky obsah přidám přízpěvek
          neco1         //toto má id 1, kategorie 1, obsah neco1, popisek zatím žádný v tabulce obsah
          neco2         //toto má id 2, kategorie 1, obsah neco2, popisek zatím žádný v tabulce obsah
          neco3         //toto má id 3, kategorie 1, obsah neco3, popisek zatím žádný v tabulce obsah


Tak a nyní chco udělat okenko:
První řádek: Název kategorie (výběr z tabulky kategorie)
Druhý řádek: Název obsahu (vypiše se xkrát podle počtu záznamů v kategorii)(výběr z tabulky obsah)


Prosím jak na to?? Nevím jak použít ten příkaz pořád mi to nejde vypisovat. Děkuji.
Kajman_
Profil *
CREATE TABLE `kategorie` (
  `id` int(11) NOT NULL auto_increment,
  `kategorie` varchar(50) character set cp1250 collate cp1250_czech_cs  NOT NULL,  
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs  AUTO_INCREMENT=1 ;

CREATE TABLE `obsah` (
  `id` int(11) NOT NULL auto_increment,
  `id_kategorie`  int(11) NOT NULL,  
  `obsah` varchar(50) character set cp1250 collate cp1250_czech_cs  NOT NULL,
  `popisek` varchar(255) character set cp1250 collate cp1250_czech_cs  NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs  AUTO_INCREMENT=1 ;

select k.kategorie, o.obsah, o.popisek from kategorie k, obsah o where k.id=o.id_kategorie order by k.id,o.id
Jack06
Profil
tohle je cross join ne?? nejde to přez left join???
Jack06
Profil
A jak pomoci proměnné vyberu id z gategorie a id z obsahu??
Jack06
Profil
Už jsem to vyřešil , ale ještě nevím proč když to vypisuju na obrazovku tak mám toto:
<div id='ramec'>
<div id='kategorie'><strong><a href='?cat=".$zn["i"]."'>".$zn["kategorie"]."</a></strong>
<div id='obsah'><strong><a href='?cat=".$zn["i"]."&req=".$zn["o"]."'>".$zn["obsah"]."</a></strong></div>
</div>
</div>


Chci aby se mi to vypsalo takto:
Pokec
   Hry
   Software
   Design

Mobily
   Novinky
   Prezentace
   Hodnoceni


ale hazi se mi to takto:

Pokec
    Hry
Pokec
    Software
Pokec
    Design
Mobily
    Novinky
Mobily
    Prezentace
Mobly
   Hodnocení


Prosím nevíte proč???
nightfish
Profil
Prosím nevíte proč???
vypisuje se ti to přesně tak, jak máš uvedeno v kódu
kýženého výsledku dosáhneš třeba tak, že si budeš pamatovat poslední vypsanou "kategorii" (Pokec, Mobily)
a když se nebude aktuální od poslední lišit, tak ji nevypíšeš...
Jack06
Profil
No pěkný a to napíšu v kódu jak?? Jsem s výpisem nikdy problem neměl ale teď poslední dobou mi nic nejde.
Kajman_
Profil *
while cosi
{
if($last_kat!=$zn["i"])
{
if ($last_kat!="") echo "</div>";
echo "<div id='kategorie'><strong><a href='?cat=".$zn["i"]."'>".$zn["kategorie"]."</a></strong>";
}
echo "<div id='obsah'><strong><a href='?cat=".$zn["i"]."&req=".$zn["o"]."'>".$zn["obsah"]."</a></strong ></div>";
}
if ($last_kat!="") echo "</div>";
Jack06
Profil
mysql_query("SET CHARACTER SET cp1250");
$vy=mysql_query("select k.kategorie, o.obsah, o.popisek, o.id o, k.id i from kategorie k, obsah o where k.id=o.id_kategorie;");
while ($zn=MySQL_Fetch_Array($vy))
{
if($last_kat!=$zn["i"])
{
if ($last_kat!="") echo "</div>";
echo "<div id='kategorie'><strong><a href='?cat=".$zn["i"]."'>".$zn["kategorie"]."</a></strong>";
}
echo "<div id='obsah'><strong><a href='?cat=".$zn["i"]."&req=".$zn["o"]."'>".$zn["obsah"]."</a></strong  ></div>";
}
if ($last_kat!="") echo "</div>";

To je fajn ještě dotaz proměnnou lastcat musím předem nějak uvest jinak neexistuje. Pak by mě zajímalo jako jakej výpis se bere. Tohle je kód s tím co jsi napsal, bohužel potřebuju někde uvést co $last_kat je. Díky
Jack06
Profil
Možná už to mám
/// tak nemám
Jack06
Profil
Hotovo LOCKED
Toto téma je uzamčeno. Odpověď nelze zaslat.