ugrás a tartalomhoz

oldalak tárolása adatbázisban

juhasztibi · 2007. Aug. 9. (Cs), 12.23
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.

<?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();
?>
Előre is köszönöm a válaszokat!
 
1

sql tábla

juhasztibi · 2007. Aug. 9. (Cs), 12.28
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- 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.
2

hát...

virág · 2007. Aug. 9. (Cs), 12.37
Szia,

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.
3

igazad van

juhasztibi · 2007. Aug. 9. (Cs), 12.51
Igen bocsi, tényleg nem az oldalakat, csak a tartalmaikat akarom tárolni adatbázisban. OOP-vel próbálkozok na meg smartyval is.

Köszönöm a válaszod :)