oldalak tárolása adatbázisban
Sziasztok!
Olyan megoldást próbálok kidolgozni ahol az oldalakat adatbázisba tárolhatom és onnan tölthetem be tömbbe, majd onnan hívhatom meg őket. Van egy megoldásom, szeretném ha megnéznétek, hogy lehetne-e valahol egyszerűsíteni vagy esetleg valamit logikusabban csinálni. Működik a megoldás, csak karakterkódolási problémáim vannak vele.Előre is köszönöm a válaszokat!
■ Olyan megoldást próbálok kidolgozni ahol az oldalakat adatbázisba tárolhatom és onnan tölthetem be tömbbe, majd onnan hívhatom meg őket. Van egy megoldásom, szeretném ha megnéznétek, hogy lehetne-e valahol egyszerűsíteni vagy esetleg valamit logikusabban csinálni. Működik a megoldás, csak karakterkódolási problémáim vannak vele.
<?php
include ('db.php');
include ('config.php');
fejlec();
$leker = "SELECT oid,ocim,otartalom,omenunev FROM oldalak WHERE omenunev!='' AND ohely='1'";
$eredmeny = mysql_query($leker) or die('Hibás lekérdezés');
echo "<div id=menu>";
echo "<ul>";
echo "<li><a href=http://localhost/index.php>főoldal</a></li>";
while(list($oid, $ocim, $otartalom, $omenunev) = mysql_fetch_array($eredmeny))
{
$files = array ( "$omenunev" => "$oid");
echo "<li><a href=http://localhost/index.php?oldal=$files[$omenunev]>$omenunev</a></li>";
}
echo "</ul></div>";
echo "<div id=tartalom>";
if(isset($_GET['oldal']))
{
$vissza = $_SERVER['HTTP_REFERER'];
$oldalker = "SELECT oid,ocim,otartalom,omenunev FROM oldalak WHERE oid=$_GET[oldal]";
$eredmeny = mysql_query($oldalker);
list($oid, $ocim, $otartalom) = mysql_fetch_array($eredmeny, MYSQL_NUM);
if($oid==TRUE)
{
echo "<h1>$ocim</h1>";
echo "$otartalom";
echo "<p align=right><a href=$vissza>vissza</a></p>";
}
else{
echo "<h1>404 a kért oldal nem létezik!</h1>";
echo "<p align=right><a href=$vissza>vissza</a></p>";
}
}
else{
include ('fooldal.php');
}
echo "</div>";
lablec();
?>
sql tábla
--
-- Adatbázis: `tibi`
--
-- --------------------------------------------------------
--
-- Tábla szerkezet: `oldalak`
--
CREATE TABLE `oldalak` (
`oid` int(11) NOT NULL auto_increment,
`ocim` varchar(255) character set utf8 collate utf8_hungarian_ci NOT NULL,
`otartalom` text character set utf8 collate utf8_hungarian_ci NOT NULL,
`omenunev` varchar(255) character set utf8 collate utf8_hungarian_ci NOT NULL,
`ohely` varchar(255) character set utf8 collate utf8_hungarian_ci NOT NULL default '0',
PRIMARY KEY (`oid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
--
-- Tábla adatok: `oldalak`
--
Itt van az adatbázis része. Esetleg erre is ha lenne javaslat.
hát...
szerintem Te nem oldalakat szeretnél tárolni, hanem az oldal tartalmi, dinamikusan változó részét. A megoldásod elvileg jó, de nem túl elegáns, kellene valamilyen sablonrendszert használnod. (Smarty esetleg) A karakterkódolási gondodhoz nehéz úgy hozzászólni, hogy nem írod meg pontosan, hogy mi a probléma (a Create Table parancsodban Latin 1-es kódolás van, lehet ez a baj). Próbáld meg szétválasztani a dolgokat, esetleg egy kis OOP sem ártana (gondolkodásban is), így később talán jobban tudnád hasznosítani a már megírt cuccaidat.
igazad van
Köszönöm a válaszod :)