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.
  1. <?php  
  2. include ('db.php');  
  3. include ('config.php');  
  4. fejlec();  
  5. $leker = "SELECT oid,ocim,otartalom,omenunev FROM oldalak WHERE omenunev!='' AND ohely='1'";  
  6. $eredmeny = mysql_query($lekeror die('Hibás lekérdezés');  
  7. echo "<div id=menu>";  
  8. echo "<ul>";  
  9. echo "<li><a href=http://localhost/index.php>főoldal</a></li>";  
  10. while(list($oid$ocim$otartalom$omenunev) = mysql_fetch_array($eredmeny))  
  11.   
  12. {  
  13. $files = array ( "$omenunev" => "$oid");  
  14. echo "<li><a href=http://localhost/index.php?oldal=$files[$omenunev]>$omenunev</a></li>";  
  15. }  
  16. echo "</ul></div>";  
  17. echo "<div id=tartalom>";  
  18.   
  19.     if(isset($_GET['oldal']))  
  20. {  
  21.     $vissza = $_SERVER['HTTP_REFERER'];   
  22.   
  23.     $oldalker = "SELECT oid,ocim,otartalom,omenunev FROM oldalak WHERE oid=$_GET[oldal]";  
  24.     $eredmeny = mysql_query($oldalker);  
  25.    list($oid$ocim$otartalom) = mysql_fetch_array($eredmeny, MYSQL_NUM);  
  26.    if($oid==TRUE)  
  27.    {  
  28.     echo "<h1>$ocim</h1>";  
  29.     echo "$otartalom";  
  30.     echo "<p align=right><a href=$vissza>vissza</a></p>";  
  31.     }  
  32.     else{  
  33.     echo "<h1>404 a kért oldal nem létezik!</h1>";  
  34.     echo "<p align=right><a href=$vissza>vissza</a></p>";  
  35.     }  
  36. }  
  37. else{  
  38.     include ('fooldal.php');  
  39. }  
  40. echo "</div>";  
  41. lablec();  
  42. ?>  
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 :)