Avatar billede kirsten Nybegynder
14. maj 2005 - 13:16 Der er 1 kommentar og
1 løsning

Faq med underkategorier

Hej,
Jeg har bikset en kode sammen som er til en faq.
Den ser sådan her ud :

if ($_GET['show'] == "faq") {
     
    $main_cat_id = mysql_escape_string($_GET['main_cat']);
      $sub_cat_id = mysql_escape_string($_GET['sub_cat']);
     
      mysqlconnect();
      $query = mysql_query("SELECT faq_main_cat.*, faq_sub_cat.* FROM faq_main_cat, faq_sub_cat WHERE faq_main_cat.main_cat_id = $main_cat_id AND faq_sub_cat.sub_cat_id = $sub_cat_id") or die(mysql_error());
    while($data = mysql_fetch_array($query)) {
   
    echo "<b>".$data[main_cat]." -> ".$data[sub_cat]."</b>";
    }
   
    $faq = mysql_query("SELECT * FROM faq WHERE main_cat_id = $main_cat_id AND sub_cat_id = $sub_cat_id") or die(mysql_error());
    while ($row2 = mysql_fetch_array($faq)) {
      $question = $row2[question];
      $answer = nl2br($row2[answer]);
      include("faq_all.php");
    }
    }else{
    mysqlconnect();
      $res = mysql_query("select * from faq_main_cat");
    while ($row = mysql_fetch_object($res))
    {
    echo "<b>$row->main_cat</b>
        <br>";

    $res2 = mysql_query("select * from faq_sub_cat where main_cat_id=".$row->main_cat_id);
    while ($row2 = mysql_fetch_object($res2))
    {
     
    echo "<a href=\"?show=faq&main_cat=$row->main_cat_id&sub_cat=$row2->sub_cat_id\">".$row2->sub_cat."</a>
        <br>";
    }
    echo "
        <br>";
  }
}

Skal liges at den er en del af en stor funktions fil.
Det virker som det er nu, men jeg vil meget gerne lave det sådan at jeg har en seperat php side med mit design.
Dvs. at jeg feks laver en <?php echo $noget ?> på den så jeg er fri for at lave design i mine funktioner.
Problemet er at jeg kun skal have mine hoved kategorier skrevet ud engang, og det virker ikke hvis jeg laver $noget = $row[noget]; og skriver det ud i php siden med mit design !

Håber det gav mening og der er envenlig sjæl der vil hjælpe !??
Avatar billede horsmark Nybegynder
18. maj 2005 - 22:47 #1
1. Pak dit HTML output ind i div´er og påsæt CSS class´es så kan du frit ændre i design blot ved at henvise til <style>#cat_header{color:red;}</style> eksempelvis
2. En anden god tin er IKKE at udskrive til browseren som koden eksekveres men gemme HTMLoutput i en variabel(er) undervejs og først til sidst udprinte indholdet i disse variabler. En god tommelfingerregel er at funktioner returnerer HTML istedet for at udskrive direkte

eksempel

function getCategoryHTML($id){
$HTML = "";
      $query = mysql_query("SELECT * FROM faq_main_cat") or die(mysql_error());
    while($data = mysql_fetch_array($query)) {
      $HTML .= "<b>".$data[main_cat]." -> ".$data[sub_cat]."</b>";
    }
  return $HTML;
}

$catHTML = getCategoryHTML(12345);
Avatar billede kirsten Nybegynder
06. januar 2008 - 17:12 #2
lukker
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