Autor Zpráva
Michal Sebek
Profil
Na mých stránkách http://oblovky.moxo.cz/ mi nejde menu.
Zdrojový kód:
index.php:
<?php 
session_start();
require "priprav-obsah.php"; 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title><?php echo $title; ?></title>
      <style type="text/css" media="all">@import "css/style.css";</style> 
      <link rel="shortcut icon" href="obrazky/favicon.ico" />
      <meta name="robots" content="index,follow" />
      <meta name="description" content="<?php echo $metapopis; ?>" />
      <meta name="keywords" content="<?php echo $klicovaslova; ?>" />
   </head>
   <body>
      <div id="obalStranky">
         <div id="hlavicka">
            <div id="logo">
               <a href="index.php" /><img src="obrazky/logo.png" /></a>
            </div>
            <div id="nadpisy">
                <h1>Programování WWW stránek pro úplné začátečníky</h1>
                <h2>...a statické stránky se změní na dynamické</h2>
            </div>
         </div> 
         <div id="stred">
            <div id="levySloupec">
               <div id="menu">
                  require "pripojeni.php";
                  $dotaz='SELECT * FROM texty WHERE zobraz_v_menu="1" order by poradi asc';
                  $vysledek=mysql_query($dotaz);
                  $zaznam=mysql_fetch_array($vysledek);
                  if($zaznam['nazev']!="") {
                    echo '<a href="index.php?page='.$zaznam['urlnazev'].'"><div class="menuLink">'$zaznam['nazev']'</div></a>';
                  }
               </div>
            </div>
            <div id="obsah">
               <h3><?php echo $nazev; ?></h3>
               <p><?php echo $text; ?></p>
               <?php 
               if($_GET['page']=="kontakt"){
                       require "kontakt.php";
               };
               if($_GET['page']=="fotogalerie"){
                       require "fotogalerie.php";
                 };
                if($_GET['page']=="kniha-navstev"){
                   require "kniha-navstev.php";
                };
               ?>
            </div>
            <div style="clear:both;"></div>
         </div> 
         <div id="paticka">
            Ukázka ke knize: <strong>Programování WWW stránek pro úplné začátečníky</strong>
         </div> 
      </div>
   </body>
</html>

priprav-obsah.php:
<?php 
require "pripojeni.php";
$php=trim(htmlspecialchars(strip_tags($_GET['page'])));
if($php=="") { 
    $php="index"; 
};
$dotaz='SELECT * FROM texty WHERE urlnazev="'.$php.'" and publikovan="1"';        
$vysledek=mysql_query($dotaz);
$zaznam=mysql_fetch_array($vysledek);
if($zaznam['nazev']!="") {
    $nazev=$zaznam['nazev'];
    $text=$zaznam['text'];
    $klicovaslova=$zaznam['klicovaslova'];
    $title=$zaznam['nazev'].' | Programování WWW stránek pro začátečníky';
    $metapopis=$zaznam['metapopis'];
};
if($nazev==""){ echo '<html><meta http-equiv="REFRESH" content="0;index.php?page=error404"></html>'; die(); };
?>

pripojeni.php:
<?php
$host='úmyslně neuvedeno (funguje)';
$uzivatel='úmyslně neuvedeno (funguje)';
$heslo='úmyslně neuvedeno (funguje)';
$databaze='úmyslně neuvedeno (funguje)';
$db = mysql_connect($host, $uzivatel, $heslo) or die('Neda se pripojit k serveru.');
mysql_select_db($databaze ,$db) or die(mysql_error($db));
mysql_query('SET NAMES UTF8');
mysql_query('SET COLLATION_CONNECTION=utf8_czech_ci');
?>

style.css:
img{
    border:0;
}
body{
    background-color:#dddddd;
    font-family:Verdana, Geneva, sans-serif;
    font-size:0.8em;
}
#obalStranky{
    width:800px;
    margin-left:auto;
    margin-right:auto;
}
#hlavicka{
    height:157px;
    background-image:url(../obrazky/hlavicka.png);
    background-repeat:no-repeat;
}
#logo{
    float:left;
    padding-top:40px;
    padding-left:30px;
}
#nadpisy{
    clear:right;
    float:right;
    padding-top:40px;
    padding-right:30px;
    text-align:right;
}
h1{
    font-size:1em;
    color:white;
}
h2{
    font-size:0.9em;
    color:#cccccc;
}
#stred{
    clear:both;
    min-height:150px;
    background-color:white;
}
#levySloupec{
    width:200px;
    float:left;
}
#menu{
    padding:5px;
}
.menuLink{
    background-image:url(../obrazky/menuZnak.png);
    background-position:center left;
    background-repeat:no-repeat;
    padding-top:10px;
    padding-bottom:10px;
    padding-left:30px;
    color:#999;
    text-decoration:none;
}
.menuLink:hover{
    background-image:url(../obrazky/menuZnakHover.png);
    text-decoration:underline;
    color:#333;
    text-decoration:underline;
}
#obsah{
    width:580px;
    clear:right;
    float:right;
    padding:10px;
}
#obsah h3{
    margin:0;
    padding:0;
    color:#077;
    font-size:1.4em;
}
#obsah p{
    text-align:justify;
    line-height:20px;
    padding-top:10px;
}
#obsah a{
    color:#066;
    text-decoration:underline;
}
#obsah a:hover{
    color:black;
    text-decoration:none;
}
#paticka{
    clear:both;
    background-image:url(../obrazky/paticka.png);
    height:38px;
    text-align:center;
    padding-top:20px;
    color:#dddddd;
}
#paticka a{
    color:#ddd;
    text-decoration:underline;
}
#paticka a:hover{
    color:fff;
    text-decoration:none;
}
.kontaktInput{
    padding:5px;
    border:1px dotted #999;
    width:250px;
    margin-bottom:8px;
}
label{
    display:inline-block;
    width:130px;
}
.okHlaska{
    border:1px solid #060;
    padding:10px;
    line-height:20px;
    background-color:#CFF;
    text-align:center;
    color:#060;
    margin-bottom:8px;
}
.chybovaHlaska{
    border:1px solid #900;
    padding:10px;
    line-height:20px;
    background-color:#FCF;
    text-align:center;
    color:#900;
    margin-bottom:8px;
}

#obsah .prispevek{
   width:570px;
   margin-left:10px;
   border:1px solid #999;
   margin-top:7px;
   margin-bottom:7px;
   border-radius:5px;
   color:#555;
}
#obsah .horniRadek{
   background-color:#ccc;
   height:20px;
   border-radius:5px;
}
#obsah .pridal{
   float:left;
   padding-left:5px;
}
#obsah .prispevek strong{
   color:#222;
}
#obsah .datum{
   text-align:right;
   float:right;
   clear:right;
   padding-right:5px;
   color:#555;
}
#obsah .textPrispevku{
   padding:8px;
   color:#333;
   clear:both;
}
#obsah .knihanavstev{
   text-align:center;
   margin-top:30px;
   border-top:1px dotted #999;
   padding-top:15px;
}
#obsah .knihanavstev textarea{
   height:100px;
}
#obsah .strankovani{
   text-align:center;
   padding-top:15px;
}
#obsah .strankovani strong{
   color:#066;
}
#obsah .strankovani a{
   color:#555;
   text-decoration:underline;
}
#obsah .strankovani a:hover{
   color:#000;
   text-decoration:none;
}
juriad
Profil
A jak se to projevuje? Nikdo si to nebude u sebe rozbíhat jen, aby to zjistil.
Micruss
Profil
A co takhle dát ten php kód do <?php ?>

<?php
                  require "pripojeni.php";
                  $dotaz='SELECT * FROM texty WHERE zobraz_v_menu="1" order by poradi asc';
                  $vysledek=mysql_query($dotaz);
                  $zaznam=mysql_fetch_array($vysledek);
                  if($zaznam['nazev']!="") {
                    echo '<a href="index.php?page='.$zaznam['urlnazev'].'"><div class="menuLink">'$zaznam['nazev']'</div></a>';
                  }
?>
a pokud nevypisuješ jen 1 menu tak bys tam měl dát while($zaznam = mysql_fetch_array($vysledek)) {
(kod) if(....).....

}
Michal Sebek
Profil
Dobře. Teď tam mám
<?php
                  require "pripojeni.php";
                  $dotaz='SELECT * FROM texty WHERE zobraz_v_menu="1" order by poradi asc';
                  $vysledek=mysql_query($dotaz);
                  $zaznam=mysql_fetch_array($vysledek);
                  if($zaznam['nazev']!="") {
                    echo '<a href="index.php?page='.$zaznam['urlnazev'].'"><div class="menuLink">'$zaznam['nazev']'</div></a>';
                  }
?>
ale nechce mi to jít. Píše to chybu: Parse error: syntax error, unexpected '$zaznam' (T_VARIABLE), expecting ',' or ';' in /home/u698440737/public_html/index.php on line 36
juriad
Profil
Chybí ti tam dvě tečky (spojení řetězců).
echo '<a href="index.php?page=' . $zaznam['urlnazev'] . '"><div class="menuLink">' . $zaznam['nazev'] . '</div></a>';
Michal Sebek
Profil
Chyba opravena ale ukazuje to jen jednu položku v menu i když mám nastavených v databázi pět
juriad
Profil
OK. Je to kvůli tomu, že voláš mysql_fetch_array jen jednou -> jeden řádek.
require "pripojeni.php";
$dotaz='SELECT * FROM texty WHERE zobraz_v_menu="1" order by poradi asc';
$vysledek=mysql_query($dotaz);
while ($zaznam=mysql_fetch_array($vysledek)) {
  if($zaznam['nazev']!="") { # je tato podmínka nutná? máš v db texty, které mají prázdný název?
    echo '<a href="index.php?page='.$zaznam['urlnazev'].'"><div class="menuLink">'$zaznam['nazev']'</div></a>';
  }
}

Mimochodem, zvaž použití mysqli, rozšíření mysql bude v budoucnu zrušeno (viz růžová varování v dokumentaci).
Michal Sebek
Profil
Děkuji vše funguje tak jak má.

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: