Avatar billede tobrukDk Novice
09. april 2013 - 15:19 Der er 13 kommentarer og
1 løsning

Fatal error: Call to undefined method - problemer

Hej

Det er sådan at jeg arbejder på at man skal kun opdater forsidens tekst, sådan at jeg ikke skal gør det via database:

Fatal error: Call to undefined method mebe::BOXforside() in /home/jesperbo/public_html/blabla.dk/admin_forside.php on line 30


function BOXforside()
    {
        if(isset($_POST["opret"]))
            {
               
                if ($stmt = $this->mysqli->prepare('UPDATE `forside_tekst` SET `tekst`=? WHERE `id`=?')) {
                    $stmt->bind_param('si', $tekst, $id);

                    $tekst = $_POST["tekst"];
                    $id = 1;

                    $stmt->execute();

                    $stmt->close();

                }
            }
        if ($stmt = $this->mysqli->prepare("SELECT `tekst` FROM `forside_tekst`")) {
            $stmt->execute();

            $stmt->bind_result($tekst);

            while ($stmt->fetch()) {
            ?>
            <form action="#" method="post">
                <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                <input type="submit" name="opret" value="Opret Blog" class="new"></td>
            </form>
            <?php
            }

            $stmt->close();

        } else {
            echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
        }
       
    }



<div class="indstillinger">
            <h5>Skriv indhold</h5>
                <?php
                    $forside_tekst = $mebe->BOXforside();
                ?>
        </div>


linje 30 er $forside_tekst = $mebe->BOXforside();

Håber du kan hjælp mig frem til hvad der er galt.
Avatar billede olebole Juniormester
09. april 2013 - 15:28 #1
<ole>

Mon ikke der bare skal stå:

$forside_tekst = BOXforside();

Jeg kan dog ikke se, at funktionen returnerer noget. Hvad skulle $forside_tekst indeholde, når funktionen bliver kaldt?

/mvh
</bole>
Avatar billede tobrukDk Novice
09. april 2013 - 15:33 #2
#1

min class bliver kaldt "mebe"


session_start();
require_once ("indhold/inc/fun_db.php");
$mebe = new mebe;
$db = $mebe->db_c();


Sådan ser det ud i toppen af filen når jeg henter min function :)
Avatar billede tobrukDk Novice
09. april 2013 - 15:37 #3
Det var ikke mening at jeg skulle giv et svar! sorry!
Avatar billede tobrukDk Novice
09. april 2013 - 15:43 #4
Hvis jeg gøre sådan her


$forside_tekst = BOXforside();


kommer den frem og siger:

Fatal error: Call to undefined function BOXforside() in /home/jesperbo/public_html/blabla.dk/admin_forside.php on line 30


Den her virker uden problemer: (Virker 110%!)


$logo = $mebe->logo();
Avatar billede olebole Juniormester
09. april 2013 - 15:59 #5
BOXforside ligner ikke noget, der ligger i en klasse - men jeg kan ikke vide det med sikkerhed.

Jeg kan stadig ikke se, hvad du vil have ud af at klade funktionen. Den returnerer som sagt ikke noget, så jeg forstår ikke din kode  =)
Avatar billede tobrukDk Novice
09. april 2013 - 16:13 #6
Jeg kan godt følge dig,

Har prøve at ligge det ind på en admin_forside.php


<h5>Skriv indhold</h5>
                <?php
                    if(isset($_POST["opret"]))
                    {
                       
                        if ($stmt = $this->mysqli->prepare('UPDATE `forside_tekst` SET `tekst`=? WHERE `id`=?')) {
                            $stmt->bind_param('si', $tekst, $id);

                            $tekst = $_POST["tekst"];
                            $id = 1;

                            $stmt->execute();

                            $stmt->close();

                        }
                    }
                    if ($stmt = $this->mysqli->prepare("SELECT `tekst` FROM `forside_tekst`")) {
                        $stmt->execute();

                        $stmt->bind_result($tekst);

                        while ($stmt->fetch()) {
                        ?>
                        <form action="#" method="post">
                            <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                            <input type="submit" name="opret" value="Opret Blog" class="new"></td>
                        </form>
                        <?php
                        }

                        $stmt->close();

                    } else {
                        echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
                    }
                ?>


Fatal error: Using $this when not in object context in /home/jesperbo/public_html/blabla.dk/admin_forside.php on line 45


if ($stmt = $this->mysqli->prepare("SELECT `tekst` FROM `forside_tekst`")) {

Fejl ligger her siger den
Avatar billede tobrukDk Novice
09. april 2013 - 16:53 #7
jeg gjore sådan her i stede for:



function updater_forside()
    {
        if ($stmt = $this->mysqli->prepare('UPDATE `forside_tekst` SET `tekst`=? WHERE `id`=?'))
        {
            $stmt->bind_param('si', $tekst, $id);

            $tekst = $_POST["tekst"];
            $id = 1;

            $stmt->execute();

            $stmt->close();

        }
        else
        {
            echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
        }
    }
       
   
    function forside_tekst()
    {
        if ($stmt = $this->mysqli->prepare('SELECT `id`, `tekst` FROM `forside_tekst` WHERE `id` = ?')) {

            /* 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, $tekst);

            /* Hent rækker og udskriv data */
            while ($stmt->fetch()) {
            ?>
            <form action="#" method="post">
                <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"></textarea>
                <input type="submit" name="opret" value="Opret Blog" class="new">
            </form>
            <?php
            }

            /* Luk statement */
            $stmt->close();

        } else {
            /* Der er opstået en fejl */
            echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
        }   
    }


det virker nu! men tak for du vil hjælp lidt olebole!.
Avatar billede tobrukDk Novice
09. april 2013 - 17:11 #8
det var mig som var for hurtigt!.
Avatar billede olebole Juniormester
09. april 2013 - 17:44 #9
Njaaahhh ... hvis du har 125.000 kr. i overskud, tager jeg da gerne imod  *D

Ellers tak, Jesper. Jeg samler stadig ikke point  =)
Avatar billede tobrukDk Novice
09. april 2013 - 18:16 #10
#9 Olebole, Det virker stadig ikke.. :(



Fatal error: Call to undefined method mebe::admin_tekst() in /home/jesperbo/public_html/blabla.dk/admin_forside.php on line 30


<?php
               
                    $admin_tekst = $mebe->admin_tekst();
                   
                    if(isset($_POST["opret"]))
                    {
                        $updater_forside = $mebe->updater_forside();
                    }
                   
                ?>



function updater_forside()
    {
        if ($stmt = $this->mysqli->prepare('UPDATE `forside_tekst` SET `tekst`=? WHERE `id`=?'))
        {
            $stmt->bind_param('si', $tekst, $id);

            $tekst = $_POST["tekst"];
            $id = 1;

            $stmt->execute();

            $stmt->close();

        }
        else
        {
            echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
        }
    }
       
   
    function admin_tekst()
    {
            if ($stmt = $this->mysqli->prepare('SELECT `id`, `tekst` FROM `forside_tekst`'))
            {
                $stmt->execute();
                $stmt->store_result();
               
                $stmt->bind_result($id, $tekst);

                while ($stmt->fetch()) {
                ?>
                <form action="#" method="post">
                    <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                    <input type="submit" name="opret" value="Opret Blog" class="new">
                </form>
                <?php
                }
                $stmt->close();

            } else {
                echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
            }   

    }
Avatar billede olebole Juniormester
09. april 2013 - 18:25 #11
Mangler du ikke:

$mebe = new mebe();

- øverst i dokumentet?
Avatar billede tobrukDk Novice
09. april 2013 - 18:57 #12
Nej olebole.

jeg har også prøve at gøre sådan her:


public function
Avatar billede olebole Juniormester
09. april 2013 - 19:07 #13
- og du har en klasse i stil med:

class mebe {

    public function admin_tekst()
    {
            if ($stmt = $this->mysqli->prepare('SELECT `id`, `tekst` FROM `forside_tekst`'))
            {
                $stmt->execute();
                $stmt->store_result();
               
                $stmt->bind_result($id, $tekst);

                while ($stmt->fetch()) {
                ?>
                <form action="#" method="post">
                    <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                    <input type="submit" name="opret" value="Opret Blog" class="new">
                </form>
                <?php
                }
                $stmt->close();

            } else {
                echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
            }   

    }
   
    // osv - osv - osv

}
Avatar billede tobrukDk Novice
10. april 2013 - 10:56 #14
har fundet ud af jeg havdet skrevet et


}


ned i bunden var der 2 for meget og den anden sidste passe ikke med nogle overhovedet!.
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





Premium
Søstrene Grene skifter Microsoft ud med SAP og rykker for første gang i clouden i stor ERP-transformation: Der er brug for en helt ny tilgang