Avatar billede optur Novice
01. marts 2011 - 17:48 Der er 11 kommentarer og
1 løsning

udtræk fra db

Jeg har gang i et lille eksperiment som jeg ikke helt kan få til at virke. Jeg har en tabel hvor alle mine rækker er i.

Den indeholder:
primary "id" som er A_I
page_title som er varchar
page_content som er text
meta_description som er text
meta_keywords som er text

her er så min kode

$id = $_GET['id'];
if (!isset ($id)) {
$id=1;
}

<div id="navi">
<ul>
<?php
$query = mysql_query('SELECT * FROM content');
while ($row = mysql_fetch_array($query)) {
extract($row);
echo "<li><a href='index.php?id=".$id."'>".$page_title."</a></li>
";
}
?>
</ul>
</div>

<div id="content">
<h1><?php echo $page_title; ?></h1>
<p class="content-text">
<?php echo $page_content; ?>
<?php echo $id; ?>
</p>
<p class="sidebar">
Her er sidebaren
</p>
</div>


problemet er at den bliver ved med i indholdet at vise indholdet i den sidste id der er tastet ind, det er som om at den ikke får id med.

Er der nogen gode råd til hvordan jeg gør det enten nemmere (gerne med eksempel da jeg er rimelig fatsvag) eller hvordan jeg løser mit problem.
Avatar billede jakobdo Ekspert
01. marts 2011 - 17:50 #1
Prøv dette:

$id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 1;
<div id="navi">
<ul>
<?php
$query = mysql_query('SELECT * FROM content WHERE id = $id LIMIT 1');
while ($row = mysql_fetch_array($query)) {
extract($row);
echo "<li><a href='index.php?id=".$id."'>".$page_title."</a></li>
";
}
?>
</ul>
</div>

<div id="content">
<h1><?php echo $page_title; ?></h1>
<p class="content-text">
<?php echo $page_content; ?>
<?php echo $id; ?>
</p>
<p class="sidebar">
Her er sidebaren
</p>
</div>
Avatar billede optur Novice
01. marts 2011 - 17:55 #2
Nu hentede den de rigtige data... problemet er bare at jeg køre en "while" til at hente teksten til menu'en ud.. og der viser den så kun en nu.
Avatar billede jakobdo Ekspert
01. marts 2011 - 18:35 #3
Test denne kode:

$p_id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 1;
<div id="navi">
<ul>
<?php
$title='';
$content='';
$query = mysql_query('SELECT * FROM content');
while ($row = mysql_fetch_array($query)){
  extract($row);
  echo "<li><a href='index.php?id=".$id."'>".$page_title."</a></li>";
  if($p_id == $id){
    $title=$page_title;
    $content=$page_content;
  }
}
?>
</ul>
</div>
<div id="content">
<h1><?php echo $title; ?></h1>
<p class="content-text">
<?php echo $content; ?>
<?php echo $p_id; ?>
</p>
<p class="sidebar">
Her er sidebaren
</p>
</div>
Avatar billede optur Novice
01. marts 2011 - 18:38 #4
Jeg har løst problemet... jeg har lavet mine while løkke som laver min menu om så den henter data fra en anden tabel. min kode ser nu ud som følgende:


<?php
$id = $_GET['id'];
// henter variablen id og sætte den til 1 hvis den ikke er sat
if (!isset ($id)) {
$id=1;
}
//$id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 1;
// XML
echo '<?xml version="1.0" encoding="utf-8"?>';
include('include/db_con.php');
$resultat = mysql_query("SELECT * FROM content WHERE id = '$id'");
while ($raekke = mysql_fetch_array($resultat)) {
extract($raekke);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="default.css" type="text/css" media="screen" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<TITLE>Søvind -Gangsted Kirker</TITLE>
<META NAME="Title" CONTENT="Søvind -Gangsted Kirker">
<META NAME="Description" CONTENT="<?php echo $meta_description; ?>">
<META NAME="Keywords" CONTENT="<?php echo $meta_keywords; ?>">
</head>
<body>

<div id="container">
<div id="header">
<div id="logo"></div>
<div class="banner">
<img src="images/header01.jpg" width="700" height="175"/>
<img src="images/header02.jpg" width="700" height="175"/>
<img src="images/header03.jpg" width="700" height="175"/>
<img src="images/header04.jpg" width="700" height="175"/>
<img src="images/header05.jpg" width="700" height="175"/>
<img src="images/header06.jpg" width="700" height="175"/>
<img src="images/header07.jpg" width="700" height="175"/>
<img src="images/header08.jpg" width="700" height="175"/>
<img src="images/header09.jpg" width="700" height="175"/>
<img src="images/header10.jpg" width="700" height="175"/>
</div>
</div>
<div id="navi">
<ul>
<?php
$query = mysql_query("SELECT * FROM navi");
while ($row = mysql_fetch_array($query)) {
extract($row);
echo "<li><a href='index.php?id=".$id."'>".$title."</a></li>
";
}
?>
</ul>
</div>
<div id="content">
<h1><?php echo $page_title; ?></h1>
<p class="content-text">
<?php echo $page_content; ?>
<?php echo $id; ?>
</p>
<p class="sidebar">
Her er sidebaren
</p>
</div>
<div id="footer"></div>
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="include/jquery.cycle.lite.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.banner').cycle({
fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
});
});
</script>
</body>
</html>
Avatar billede optur Novice
01. marts 2011 - 18:47 #5
Jeg har så et andet problem

i min while løkke til min menu, der har jeg førhen brugt en if strukur til at bestemme understregning hvis den pågældende id er valgt. Men hvordan skal det skrives ind i den løkke?

min koder er den er:

<ul>
    <?php
        $query = mysql_query("SELECT * FROM navi");
            while ($row = mysql_fetch_array($query)) {
                extract($row);
                echo "<li><a href='index.php?id=".$id."'>".$title."</a></li>
            ";
        }
    ?>
</ul>


Jeg vil gerne have det sådan at hvis den givende id er valgt så kommer der en border bottom på, jeg har førhen brugt denne kode:


<li id="nav01"><a href="<?php $_SERVER['PHP_SELF'];?>?id=1"<?php if($id==1) { ?> style="background: transparent url(images/navi.jpg) -1px -50px no-repeat;" <?php } ?>><!--Forside--></a></li>


men den virker ikke rigtig inde i løkken, da jeg skal have id'en med. Da id jo skal være lig med $id.

Nogen gode forslag?
Avatar billede jakobdo Ekspert
01. marts 2011 - 18:50 #6
Se min kode inden dit eget svar...
Avatar billede optur Novice
01. marts 2011 - 19:10 #7
der sker intet.

Nu er alt tomt
Avatar billede optur Novice
01. marts 2011 - 19:11 #8
og jeg forstår ikke hvordan jeg sætte den if struktur ind så den bliver understreget???
Avatar billede optur Novice
01. marts 2011 - 19:13 #9
plus jeg ved heller ikke hvordan jeg sætte din kode ind så jeg stadig kan hente meta data ud fra databasen???
Avatar billede optur Novice
01. marts 2011 - 19:18 #10
nu tror jeg at jeg har forvirret mig selv mere end nødvendigt...

Bare lige så der er styr på alt så forklare jeg lige hvad jeg vil have..

Meta data i <head> som hentes fra databasen, afhængig af den id som er blevet sat. Og sammen med den id følger indholdet.

En while loop som henter titel ud og som har en if struktur som ser hvis id'en til det givende menupunkt er valg, så skal den sætte border-bottom på.
Avatar billede optur Novice
01. marts 2011 - 19:21 #11
Godt jeg må så lige æde mine egne ord lidt og lige tage en slapper..

Du kode virkede udemærket, det var mig som ikke skrev den rigtigt ind.
Avatar billede jakobdo Ekspert
01. marts 2011 - 20:10 #12
:o)

Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester