Autor Zpráva
skrepyKOKO
Profil
ahoj,mám 2 tabulky,jednu články druhou kategorie...
v kategorie mám ID a nazev
v články mám kategorie(id kategorie)
v clanky.php vyvolávám kategorii tak,že vytáhnu záznam z tabulky clanky sloupec kat
kde se mě objeví vlastně ID té kategorie...

$vysledek = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM clanky
ORDER BY id_clanku DESC LIMIT ".intval($stranka).",$po"); // připojení 

if(!$vysledek) throw new Exception( mysql_errno() );
while($zaznam=mysql_Fetch_array($vysledek))
{
$idecko=$zaznam["kategorie"]; // vytáhnutí z tabulky clanky sloupec kategorie
$kat = mysql_query("SELECT id,zaznam FROM kategorie WHERE id='$idecko'"); // má vybrat id kategorie podle id kategorie v clanky.
?>
<? echo $kat["zaznam"]; ?> //vyvolání název kategorie


zkusil jsem udělat toto,jenže mě to nějak nejde...nevíte kde je chyba?
skrepyKOKO
Profil
tak jsem to asi vyřešil..ale ještě se chci zeptat,může bejt v jednom php souboru 2x while?
Medvídek
Profil
skrepyKOKO:
Proč by nemohlo?
skrepyKOKO
Profil
já jen tak:) jelikož se mě to nejdřív zdálo divný...tak jsem se jen zeptal:)
skrepyKOKO
Profil
abych nezakládal nový tema tak to napíšu sem,ono to stejnak spolu souvisí..
mám kategorie,ono to vše funguje,ale..prostě to jde přiřadit jen k jedné kategorie,jak udělat sloupec aby to šlo přiřadit k více kategorii?
mám
tabulka kategorie
id | nazev

v tabulce kategorie mám zatím jen dvě, ID 1 - název: novinky ID 2 - název: ostatní

tabulka clanky
id_clanku | kategorie

id článku 1 kat 1
funguje mě to tak,že mám tabulku kategorie s clanky spojený,že když mám v tabulce clanky kat na 1 tak mě to najde v tabulce kategorie že 1=novinky

pak jen echo..
no,ale jde to pouze pro jednu kategorii,myslím tím,že jde vybrat jen jedna kategorie..jelikož do sloupce kat asi nejde udělat 1,2..
chtěl bych udělat že bych měl přes checkbox udělanou tabulku kde by byly všechny ty kategorie při vytváření článku,udělá článek a zaškrtne to co chce zařadit jako tu kategorii..

ale nevím bohužél jak to udělat pro více kategorii..
snad jste pochopily co po vás chci...
jestli chcete php kodu tak zde:

<?php
require_once "otevridb.php";
try {
OtevriDB();
if(empty($_GET["stranka"])) {$stranka = 0;} else {$stranka = $_GET["stranka"];}
$po = 5;
$vysledek = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM clanky ORDER BY id_clanku DESC LIMIT ".intval($stranka).",$po");

if(!$vysledek) throw new Exception( mysql_errno() );
while($zaznam=mysql_Fetch_array($vysledek))
{
?>

vlastně pro načtení všeho v tabulce clanky,pak jen dávam echo pro výpis..

<? $idecko=$zaznam["kategorie"];
$kat = mysql_query("SELECT * FROM kategorie WHERE id='$idecko'");
while($zaznam2=mysql_Fetch_array($kat))
{?>			
<strong>Kategorie:</strong> <a href="kategorie.php?kat=<? echo $zaznam["kategorie"]; ?>"><? echo $zaznam2["zaznam"]; ?></a>
<? } ?> 

Tady je je právě co,kde vypisuju co je to za kategorii...

myslím že stránka kategorie.php je zbytečná abych jí sem dával..je tam jen kontrola zda se jedná to tu kategorii a výpis..nic jinýho
Majkl578
Profil
skrepyKOKO:
jak udělat sloupec aby to šlo přiřadit k více kategorii
Blbě. Použij M:N vazbu skrz třetí tabulku, kde budou uložené vazby mezi články a kategoriemi.
Tzn. budeš mít 3 tabulky:
1. kategorie (stejně jako teď):
id | nazev | ...
2. clanky:
id | ... (tady nebude sloupec kategorie)
3. clanky_kategorie (nebo podobné pojmenování):
clanek_id | kategorie_id (obojí budou cizí klíče, první na clanek.id, druhé na kategorie.id)

<poučování>
Nikdy nepoužívej krátké otvírací tagy (<?), pouze <?php. A nauč se přehledně formátovat kód, zejména dodržovat odsazování a logické členění a smysluplně pojmenovávat proměnné, v tomhle se nedá vyznat.

Nevypadá [#5] takhle lépe?
<?php
require_once "otevridb.php";
try {
    OtevriDB();
    
    if (empty($_GET["stranka"])) {
        $stranka = 0;
    } else {
        $stranka = $_GET["stranka"];
    }
    
    $po = 5;
    $vysledek = mysql_query("SELECT *, UNIX_TIMESTAMP(datum) as datumcas FROM clanky ORDER BY id_clanku DESC LIMIT " . intval($stranka) . ",$po");

    if (!$vysledek) throw new Exception(mysql_errno());
    
    while ($zaznam = mysql_fetch_array($vysledek)) {
?>
a
<?php

$idecko = $zaznam["kategorie"]; 

$kat = mysql_query("SELECT * FROM kategorie WHERE id='$idecko'"); 

while ($zaznam2 = mysql_Fetch_array($kat)) {
?>
<strong>Kategorie:</strong> <a href="kategorie.php?kat=<?php echo $zaznam["kategorie"]; ?>"><?php echo $zaznam2["zaznam"]; ?></a> 
<?php } ?> 
</poučování>
skrepyKOKO
Profil
no,díky moc:),nejdřív jsem stím měl problémy,ale pak jsem nato přišel:)
skrepyKOKO
Profil
ahoj,tak zase otravuju...
pořebuju nějak udělat,upravu článku...jako uprava článku jde,ale jde o tohle
když vytvářím článek,tak tam mám kategorie v checkboxu..a jde mě o to,že když při vytvoření článku zatrhnu třeba novinky,tak aby to při upravě článku bylo zatrhlý...napadlo mě udělat to přes if,na proměnnou,ale když jsem začal psát,tak mě najedou nic nenapadlo jak bych to měl asi tak udělat...
tabulka i php je stejný (nahoře)

udělal jsem to zatím takhle...v tabulce kategorie_spoj jsem vytvořil sloupec check a při vytvoření článku se tam zapíše checked..
a pak to dosadit do checkboxu
<input type="checkbox" name="C1" value="ON" <? echo $katt["check"]; ?>>


jenže problém je v tom,že mě to ukazuje 2x...
php:
<?php
$vysledek = mysql_query("SELECT * FROM clanky WHERE id_clanku='{$_REQUEST['IDCL']}'");
while($zaznam=mysql_Fetch_array($vysledek))
{
$clanek=$zaznam["id_clanku"];
$kategorie_spoj = mysql_query("SELECT * FROM kategorie_spoj WHERE id_clanku='$clanek'");
while($katt=mysql_Fetch_array($kategorie_spoj))
{
$ha=$katt["id_kategorie"];
$kategorie = mysql_query("SELECT id,zaznam FROM kategorie WHERE id='$ha'"); 
while($kat=mysql_Fetch_array($kategorie))
{
<td><input type="checkbox" name="C1" value="ON" <? echo $katt["check"]; ?>> <? echo $kat["zaznam"]; ?></td><br>
... ?>

nevíte proč mě to vypisuje 2x?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0