Avatar billede Morten Professor
19. december 2015 - 21:51 Der er 7 kommentarer og
1 løsning

Function

Hej Eksperter

Jeg er igang med at lave mit eget "lille" projekt.

Jeg er ved at prøve at få functions til at være en den af hjemmesiden.
Så jeg altid har et godt overblik.

Det er lige er problemet er når jeg kalder på den, kommer der ingen ting. melder bare fejl. Undefined variable: banner feks.


<?php require_once('database/database.php'); ?>
<?php
function hent_grundside($con){
/* Select et prepared statement */
if ($stmt = $con->prepare('SELECT `id`, `title`, `banner`, `copyright`, `tekst` FROM `tbl_grundside`')) {

    /* Bind parametre */
    $stmt->bind_param('i', $id);

    /* Sæt værdier på parametrene */
    $id = 1;

    /* Eksekver forespørgslen */
    $stmt->execute();

    /* Bind resultatet */
    $stmt->bind_result($id, $title, $banner, $copyright, $tekst);

    /* Hent rækker og udskriv data */
    while ($stmt->fetch()) {
    ;}}}
    ?>



Her er den måde jeg prøver at stille det op på:

Min function:



<?php require_once('database/database.php'); ?>
<?php require_once('functions/grundside.php'); ?>
<?php
hent_grundside($con);
?>
<!doctype html>
<!--[if lt IE 7]> <html class="ie6 oldie"> <![endif]-->
<!--[if IE 7]>    <html class="ie7 oldie"> <![endif]-->
<!--[if IE 8]>    <html class="ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="">
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo $title; ?></title>
<link href="boilerplate.css" rel="stylesheet" type="text/css">
<link href="_style/_style.css" rel="stylesheet" type="text/css">
<!--
To learn more about the conditional comments around the html tags at the top of the file:
paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

Do the following if you're using your customized build of modernizr (http://www.modernizr.com/):
* insert the link to your js here
* remove the link below to the html5shiv
* add the "no-js" class to the html tags at the top
* you can also remove the link to respond.min.js if you included the MQ Polyfill in your modernizr build
-->
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="respond.min.js"></script>
</head>
<body>
<div class="gridContainer clearfix">
  <div id="Banner"><?php echo $banner; ?>
    <div id="Body">Body</div>
<div id="Tekst"><?php echo $tekst; ?></div>
<div id="Copyright"><?php echo $copyright; ?></div>
  </div>
</div>
</body>
</html>


Med venlig hilsen
Morten
Avatar billede olsensweb.dk Ekspert
19. december 2015 - 22:11 #1
ref
 
/* Bind parametre */
$stmt->bind_param('i', $id);

/* Sæt værdier på parametrene */
$id = 1;

hvor bruges dete ??
du har jo ikke noget spørgsmåls tegn i din sql


ref
 
    while ($stmt->fetch()) {
    ;}

skulle du ikke trække nogle værdier ud i din while ??


skulle du ikke retunerer noget fra din function ??
alle verdier inde i en function bliver inde i functionen, med mindre de retuneres
når en function forlades slettes indholdet af functionen
Avatar billede Morten Professor
19. december 2015 - 22:11 #2
Det virker fint hvis jeg bare har det på samme side
Avatar billede Morten Professor
19. december 2015 - 22:16 #3
Så må jeg bare gøre som jeg plejer, hvis function ikke virker på den måde. :o(
Avatar billede Morten Professor
20. december 2015 - 14:16 #4
Så er det rettet

if ($stmt = $con->prepare('SELECT `id`, `title`, `banner`, `copyright`, `tekst` FROM `tbl_grundside` WHERE id = ?'))

Men får sådan en ingen ting frem.
Er der noget mere jeg skal gøre?
Avatar billede Morten Professor
20. december 2015 - 14:34 #5
Jeg prøver sådan men der kommer ikke noget
<?php hent_grundside($con);
    echo $title; ?>
Avatar billede olsensweb.dk Ekspert
20. december 2015 - 16:18 #6
du skal retunerer et array alternativ et object med dine data fra functionen

inde i functionen er der et scope
udenfor functionen er der et andet scope
Avatar billede tvilling53 Seniormester
20. december 2015 - 16:20 #7
//kald af function
$oplysninger=hent_index($mysqli,$id);


Function hent_index($mysqli,$id)
    {$data=[];
      if(!($stmt=$mysqli->prepare('SELECT * FROM workdb WHERE id =? ')))
        {    echo "<br>Prepare failed i linie 215 <br>:(".$mysqli->errno.")" .$mysqli->error;}
      if(!$stmt->execute())
        {  echo "<br>execute failed i linie 217:(".$mysqli->errno.")" .$mysqli->error;}
      if(!($res = $stmt->get_result()))
        {  echo "<br>Getting result set failed i linie 219:(".$mysqli->errno.")" .$mysqli->error;}
      while ($row = mysqli_fetch_array($res))
        {
          $data['indtaegt']=$row['indtaegt'];
          $data['tekst']=$row['tekst'];
          $data['udgift']=$row['udgift'];
          $data['saldo']=$row['saldo'];
          $data['tjek']=$row['tjek'];         
          $data['oprettet']=$row['oprettet'];
        }
      return $data;
  }//funktion slut

Teksten i [] skal ændres til 'title','banner' osv.

Thomas V
Avatar billede Morten Professor
21. december 2015 - 11:54 #8
Det virker ikke som det skal Men tak for de gode råd, jeg lukker tråd.
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