Avatar billede aquix Nybegynder
08. juni 2007 - 15:48 Der er 11 kommentarer og
1 løsning

database og if-løkker? :S

Hej eksperter!

Jeg sidder her og eksperimenterer en smule med et kategori-system, men er lidt i tvivl om hvorvidt jeg kan få mine elseif løkker til at arbejde sammen med min database.
   
Jeg søger en metode til, hvorledes jeg kan ændre følgende kode:
    elseif($parametre['5'] == "Profil")
    {
      echo "Profil";
    }
    elseif($parametre['5'] == "Kontakt")
    {
      echo "Kontakt";
    }
osv osv.

...til eksempelvis:

    elseif($parametre['5'] == "".$row['menuname']."")
    {
      echo "{$indhold}";
    }

......

Jeg har forsøgt mig med et database opkald samt en while-løkke før hver elseif, hvilket blot medfører fejl. Jeg håber I forstår min pointe med spørgsmålet, og at I har nogle konstruktive forslag til en rookie som mig ;D

Jeg takker på forhånd.
Avatar billede michael_stim Ekspert
08. juni 2007 - 15:50 #1
Du skal jo först have en if.
Avatar billede michael_stim Ekspert
08. juni 2007 - 15:51 #2
if(){
}
elseif(){
}
else{
}
Avatar billede michael_stim Ekspert
08. juni 2007 - 15:53 #3
Eller hvis du laver check på samme variabel, ville jeg forträkke switch case
www.php.net/switch
Avatar billede aquix Nybegynder
08. juni 2007 - 15:59 #4
Jeg prøver lige at illustrere hensigten med koden. :D


   
    if($parametre['4'] == "".$pro_row['produkt')
    {
        echo " her bliver den specifikke produkt-information vist. ";
    }   
           
    elseif($parametre['3'] == "".$pro_list['id']."")
    {                                   
        echo " her bliver produkterne vist >";
    }
               
    elseif($parametre['2'])
    {
        echo cat_hifi();
    }

noget i den stil... lidt hurtigt illustreret. Men altså, hvert "niveau", dvs. hver parametre skal have information fra andre tabeller i databasen.
Avatar billede aquix Nybegynder
08. juni 2007 - 16:01 #5
Jeg er bare blevet anbefalet ikke at bruge switch, men i stedet at benytte if, elseif mv.

Jeg fik ikke rigtig nogle argumenter, men har alligevel valgt at lytte til rådet :D Ved ikke om I har andre erfaringer? :P

Ydermere må I sige, hvis jeg udtrykker mig for dårligt i mit spørgsmål.
Avatar billede cronaldo Nybegynder
09. juni 2007 - 00:20 #6
hvorfor ikke bare hente alt ud fra din database inden og skrive det således:

$produkt = $pro_row[produkt];
$id = $pro_list[id];

og si:

if($parametre['4'] == $produkt){
// DET DER SKAL SKE
} else if($parametre['3'] == $id){
//DET DER SÅ SKAL SKE
} else if($parametre['2'] == $lav_dine_egne_variabler){
//NÆSTE SKRIDT
}

osv. osv. :) .. hvis du forstår ? :)
Avatar billede aquix Nybegynder
09. juni 2007 - 12:51 #7
Forstår godt hvor du vil hen, men kan kun få den til at hente første række i tabellen... Men en eventuel while-løkke virker det slet ikke :|
Avatar billede dkfire Nybegynder
09. juni 2007 - 13:47 #8
Hvordan ser din sql ud ?
og resten af din kode ??
Avatar billede aquix Nybegynder
09. juni 2007 - 14:26 #9
Lige nu ser min kode ud som følger:

<?php
        include("req/core.php");
        include("admin/inc_connection.php");
        $parametre = explode("/", $_SERVER['REQUEST_URI']);
   
    siteTop();
   
        $cat_name = "cat_hifi";
        $pro_name = "products";
       
        $query_cat = mysql_query("SELECT * FROM `{$cat_name}`");
        $row_cat = mysql_fetch_array($query_cat);
           
        $category = $row_cat['name'];
       

       
                if($parametre['4'] == "en eller anden form for get, der får ID fra det produkt man valgte i parametre3")
                {
                    echo " her bliver den specifikke produkt-information vist. ";
                }   
           
                elseif($parametre['3'] == $category)
                {                                   
                    $query_list = mysql_query("SELECT * FROM {$pro_name} WHERE catid='".$row_cat['catsub']."'");
                    while($row_list = mysql_fetch_array($query_list))
                    {
                        echo "".$row_list['name']."";
                    }
                }
               
                elseif($parametre['2'])
                {
                    echo cat_hifi();
                }       
    siteBottom();
   
?>
Avatar billede aquix Nybegynder
09. juni 2007 - 14:28 #10
MySQL:

cat_hifi
  id
  catsub
  name
  sorting

products
  id
  catid
  name
Avatar billede masik7 Nybegynder
09. juni 2007 - 16:53 #11
<?php
        include("req/core.php");
        include("admin/inc_connection.php");
        $parametre = explode("/", $_SERVER['REQUEST_URI']);
 
    siteTop();
 
        $cat_name = "cat_hifi";
        $pro_name = "products";
     
        $query_cat = mysql_query("SELECT * FROM `{$cat_name}`");
        while($row_cat = mysql_fetch_array($query_cat)){
         
        $category = $row_cat['name'];
     

     
                if($parametre['4'] == "en eller anden form for get, der får ID fra det produkt man valgte i parametre3")
                {
                    echo " her bliver den specifikke produkt-information vist. ";
                } 
         
                elseif($parametre['3'] == $category)
                {                                 
                    $query_list = mysql_query("SELECT * FROM {$pro_name} WHERE catid='".$row_cat['catsub']."'");
                    while($row_list = mysql_fetch_array($query_list))
                    {
                        echo "".$row_list['name']."";
                    }
                }
             
                elseif($parametre['2'])
                {
                    echo cat_hifi();
                }     
}
    siteBottom();
 
?>


Hmm, hurigt lille gæt..
Avatar billede aquix Nybegynder
28. juli 2007 - 06:07 #12
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