Avatar billede coolcom Nybegynder
06. oktober 2007 - 12:22 Der er 7 kommentarer og
1 løsning

Listning af resultater

Hey..

Jeg har følgende script:

            function info_submenu() {
            global $connector, $error, $skin;
       
                $result     = $connector->query('SELECT * FROM felderbal_info');
                $row         = $connector->fetchArray($result);
                $id            = $row['submenu_id'];
                $name        = $row['submenu_name'];
                $content    = $row['content'];
           
           
                $this->submenu .= $this->html->showsubmenu($name, $id);
           

            }



Som sender relutatet videre over til:

<?php

class skin_submenu {

    var $name     = "";
    var $id        = "";

//--------------------
//    Vis information
//--------------------

function showsubmenu($name, $id) {




$CMSHTML = <<<EOT
   
    <div id="left">

           
           
            <p></p>
           
            <p><img src="../felderbal/skin/images/bullet.gif" width="13" height="9" /><a href="#"><a href="index.php?id={$id}">{$name}</a></p>

           
   
    </div>
   
EOT;

return $CMSHTML;



  }

}


?>

Jeg vil dog gerne have listet samtlige resultater i en vertikal række..
Hvordan gør jeg det?
Avatar billede jakobdo Ekspert
06. oktober 2007 - 17:17 #1
Er det ikke "bare" at fjerne <p> og </p> fra din showsubmenu() function?
Avatar billede coolcom Nybegynder
06. oktober 2007 - 17:35 #2
Nej.. Det hjælper ikke:D
Avatar billede coolcom Nybegynder
06. oktober 2007 - 17:40 #3
Jeg tænkte på noget i denne stil:

function showsubmenu($name, $id) {


do {

$CMSHTML = <<<EOT
   
    <div id="left">

           
           
            <p></p>
           
            <p><img src="../felderbal/skin/images/bullet.gif" width="13" height="9" /><a href="#"><a href="index.php?id={$id}">{$name}</a></p>

           
   
    </div>
   
EOT;

return $CMSHTML;

} while ($id > 0);


  }

Men det virker heller ikke helt:D
Avatar billede jakobdo Ekspert
07. oktober 2007 - 19:43 #4
Prøv med:

function showsubmenu($name, $id) {
    $output = '';
    $result = $connector->query('SELECT * FROM felderbal_info');
    while($row = $connector->fetchArray($result))
    {
        $output .= '<p><img src="../felderbal/skin/images/bullet.gif" width="13" height="9" /><a href="#"><a href="index.php?id='.$row['submenu_id'].'">'.$row['submenu_name'].'</a></p>';
    }
    return $output;
}
Avatar billede coolcom Nybegynder
12. oktober 2007 - 18:40 #5
Det virkede ikke helt.. Men nu har jeg følgende

(submenu.php):

function info_submenu() {
            global $connector, $error, $skin, $site;
           
       
            $site = "info";
       
            $temp = !empty($_GET['pageid']) ? $_GET['pageid'] : FALSE;
       
                if ($temp == FALSE)
                {
                   
                   
                    $query = 'SELECT title, mem_only, view, pageid FROM felderbal_info WHERE view="1" AND id > "1" ';
                    $result = $connector->query($query);
                   
               
                    if ($connector->number_rows($result) == 0)
                    {
                        $this->submenu .= $this->html->no_pages();
                        return;
                    }
                   
                    else
                    {
                        $this->submenu .= $this->html->start_sub();
                       
                            while ($row = $connector->fetchArray($result))
                            {
                                $this->submenu .= $this->html->list_pages($row);
                            }
                           
                        $this->submenu .= $this->html->end_sub();
                    }
                   
                }
               
                else
                {
                    $page = $connector->check_input($temp);
                   
                        $result = $connector->query('SELECT * FROM vsource_custom WHERE pageid="'.$page.'" AND view="1"');
                       
                            if ($connector->number_rows($result) == 1)
                            {
                                $row = $connector->fetchArray($result);
                               
                                    if ($row['mem_only'] == 1)
                                    {
                                        if ($cms->member['is_member'] == 0)
                                        {
                                            $this->output .= $error->error('Im sorry, This page is only viewable for members only.', $back = true);
                                            return;
                                        }
                                    }
                               
                                    if (strlen($row['title']) > 0)
                                    {
                                        $skin->do_title($row['title']);
                                    }
                                   
                                $this->output .= $this->html->showpage($row);
                               
                            }
                           
                            else
                            {
                                $this->output .= $error->error('Im sorry, I could not find the page you specified. Please try again.', $back = true);
                                return;
                            }
                }
   
               
            }
       


Dette er dog kun funktionen til at lave submenuer til info siden..


Jeg får nu vist alle mine submenuer på en vertikal række og som links. Når jeg trykker på dem bliver jeg også sendt hen til den rigtige adresse, men uden det rigtige indhold. Jeg har siddet i flere timer med dette uden at kunne finde fejlen.

Så det jeg mangler nu er at få vist det rigtige indhold på siden når man trykker på linket.

p.s. min class_db.php ser således ud:

<?php

//Henter config.php
require_once 'config.php';

//Definere klassen DbConnector og laver en forlængelse af config.
class DbConnector extends config {

    var $theQuery;
    var $link;

//--------------------------------------------------------------------------------------------------

        //*** Function: DbConnector, Formål: At skabe kontakt til databasen ***
        function connect(){
       
            // Henter oplysninger fra foregående klasse
            $settings = config::getSettings();
           
            // Placere oplysninger i variabler
            $host =     $settings['dbhost'];
            $db =         $settings['dbname'];
            $user =     $settings['dbusername'];
            $pass =     $settings['dbpassword'];
           
            // Skaber kontakt til databasen
            $this->link = mysql_connect($host, $user, $pass);
            mysql_select_db($db);
            register_shutdown_function(array(&$this, 'close'));
       
        }

//--------------------------------------------------------------------------------------------------
       
        //*** Function: query, Formål: At udføre en databse forespørgsel ***
        function query($query) {
       
            $this->theQuery = $query;
            return mysql_query($query, $this->link);
       
        }
   
//--------------------------------------------------------------------------------------------------
       
        //*** Function: fetchArray, Formål: Placere resultater i et array ***
            function fetchArray($result) {
           
            return mysql_fetch_array($result);
           
        }

//--------------------------------------------------------------------------------------------------
           
           
           
        function check_input($input)
        {
       
            //---------------------------------------------------------------------------------
            //    Checking query for sql injection (Recommended to use this for all user input)
            //---------------------------------------------------------------------------------
           
            if (get_magic_quotes_gpc())
            {
                $input = stripslashes($input);
            }
           
            //-------------------------------
            // Quote it, if it's not integer
            //-------------------------------
           
            if (!is_numeric($input))
            {
                $input = mysql_real_escape_string($input);
            }
           
            return $input;
        }
   
           
//--------------------------------------------------------------------------------------------------   
           
        function number_rows($query)
        {
            return @mysql_num_rows($query);
          }
       
//--------------------------------------------------------------------------------------------------   
       
        //*** Function: close, Formål: At lukke forbindelsen ***
            function close() {
           
            mysql_close($this->link);

        }


}
?>
Avatar billede coolcom Nybegynder
21. oktober 2007 - 13:00 #6
Nå.. det fik jeg ikke til at virke, men du kan da smide et svar og få point for dit forsøg:D
Avatar billede jakobdo Ekspert
21. oktober 2007 - 18:57 #7
Svar!
Avatar billede jakobdo Ekspert
17. juni 2008 - 21:28 #8
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