Avatar billede sesam Nybegynder
17. november 2007 - 15:36 Der er 3 kommentarer og
1 løsning

Som 1 funktion

Hej hej,
hvordan "gemmer" jeg nedenstående som en funktion, så jeg kan kalde den recursive kode der afvikles?
---------------------------

<select name="news_archive_id" style="width: 206px" class="input">
<?php

$con = mysql_connect( ****, ****, **** );
    mysql_select_db( ****, $con );
   
    $results = array();
   
        function news_archives_list( $parent, $indent = 0 )
        {
            global $results;
            $sql = "SELECT * FROM tbl_news_archive WHERE news_archive_parent_id = $parent";
            //echo $sql."<br />";
            $res = mysql_query( $sql );
            if ( mysql_num_rows( $res ) > 0 )
            {
                while ( $row = mysql_fetch_assoc( $res ) ) {
                    $results[] = array("news_archive_name" => $row['news_archive_name'], "news_archive_id" => $row['news_archive_id'], "news_archive_parent_id" => $row['news_archive_parent_id'], "indent" => $indent);
                    news_archives_list( $row['news_archive_id'], $indent + 1 );
                }
            mysql_free_result( $res );
            }
        }
       
        news_archives_list( 0 );
       
        $n = count( $results );
       
        foreach ( $results as $row )
        {
        $line.= "";
        $indent = str_repeat( "'-", $row['indent'] );
            if ($row['indent'] == 0) {
                $line.= "<option value=\"".$row[news_archive_id]."\">".$row[news_archive_name]."</option>\n";
            } else {
                $line.= "<option value=\"".$row[news_archive_id]."\">".$indent." ".$row[news_archive_name]."</option>\n";
            }
        }
        echo $line;

?>
</select>
Avatar billede nielle Nybegynder
17. november 2007 - 21:13 #1
Noget i denne stil?

$con = mysql_connect( ****, ****, **** );
mysql_select_db( ****, $con );

function news_archives_list( $parent = 0, $indent = 0, $innerRecursion = false ) {
    global $results;

    if ($innerRecursion) {       
        $sql = "SELECT * FROM tbl_news_archive WHERE news_archive_parent_id = $parent";
        // echo $sql . "<br />";
        $res = mysql_query( $sql );
        if ( mysql_num_rows( $res ) > 0 ) {
            while ( $row = mysql_fetch_assoc( $res ) ) {
                $results[] = array(
                    "news_archive_name" => $row['news_archive_name'],
                    "news_archive_id" => $row['news_archive_id'],
                    "news_archive_parent_id" => $row['news_archive_parent_id'],
                    "indent" => $indent
                );
                news_archives_list( $row['news_archive_id'], $indent + 1, $innerRecursion );
            }
        }
        mysql_free_result( $res );
    } else {
        echo '<select name="news_archive_id" style="width: 206px" class="input">';
   
        $results = array();

        news_archives_list( 0, 0, true );
       
        $n = count( $results );
       
        foreach ( $results as $row ) {
            $indent = str_repeat( "'-", $row['indent'] );
            if ($row['indent'] == 0) {
                $line .= "<option value=\"" . $row[news_archive_id] . "\">" . $row[news_archive_name] . "</option>\n";
            } else {
                $line .= "<option value=\"" . $row[news_archive_id] . "\">" . $indent . " " . $row[news_archive_name] . "</option>\n";
        }
    }
    echo $line;
    echo '</select>';
}
Avatar billede nielle Nybegynder
26. november 2007 - 17:50 #2
Hvad med noget respons?
Avatar billede sesam Nybegynder
26. november 2007 - 18:38 #3
Hej Nielle, sorry troede jeg havde svaret...
Det virker bare som det skal mange tak for hjælpen...

Smid et svar... :)
Avatar billede nielle Nybegynder
26. november 2007 - 18:44 #4
Svar :^)
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