Avatar billede dejbjerg Nybegynder
29. november 2005 - 11:50 Der er 22 kommentarer og
1 løsning

conditional if

Jeg har tre variable
$a, $b, $c - som enten er tomme ("") eller har værdi
og tre andre variable
$d, $e, $f

Jeg vil gerne have en if som gør følgende:
Pseudokode (3 eksempler):

HVIS $a == ""
&& $b <> ""
&& $c <> "" SÅ udskriv noget HVIS $b==e && $c==f

HVIS $a <> ""
&& $b <> ""
&& $c <> "" SÅ udskriv noget HVIS $a==$d && $b==e && $c==f

HVIS $a <> ""
&& $b == ""
&& $c == "" SÅ udskriv noget HVIS $a==$d

Jeg kan ikke gennemskue hvordan jeg gør ... uden en helvedes masse kombinatoriske if'er.

Hilfe bitte :)

På forhånd tak
/Dej
Avatar billede dejbjerg Nybegynder
29. november 2005 - 11:51 #1
$$$ - strø selv :)
Avatar billede jakobdo Ekspert
29. november 2005 - 12:41 #2
if(empty($a) && !empty($b) && !empty($c))
{
    if($b == "e" && $c == "f")
    {
        echo "Udskriv noget";
    }
}
elseif(!empty($a) && !empty($b) && !empty($c))
{
    if($a == $d && $b == "e" && $c == "f")
    {
        echo "Udskriv noget";
    }
}
elseif(!empty($a) && empty($b) && empty($c))
{
    if($a == $d)
    {
        echo "Udskriv noget";
    }
}
Avatar billede sl33py Nybegynder
29. november 2005 - 12:44 #3
første if.
if(($a == "") && ($b <> "") && ($c <> "")) {
    echo "a er \"\", b <> \"\" og c <> \"\"";
}
Så er resten jo bare næsten det samme :-)
Avatar billede sl33py Nybegynder
29. november 2005 - 12:44 #4
Too slow... :-)
Avatar billede dejbjerg Nybegynder
29. november 2005 - 12:45 #5
jacobdo>>> Takker for svaret, men nu er vi ude i kombinatorik igen, mangler en principiel løsning så jeg ikke skal hardcode for hver mulig kombination. Hvis der nu er 5*5, 6*6 variable etc..
Avatar billede jakobdo Ekspert
29. november 2005 - 12:46 #6
Du bruger == eller <>, jeg kan bedre lide at bruge php funktionen: empty(), smag og behag!

Kan man i det hele taget bruge: <>?
Skal det ikke være !=
Avatar billede jakobdo Ekspert
29. november 2005 - 12:47 #7
Du tester efterfølgende om de er lige e eller f!
Den forstår jeg ikke!

Prøv at forklar lidt mere så?
Avatar billede dejbjerg Nybegynder
29. november 2005 - 12:47 #8
sl33py>>> ditto :)
Avatar billede dejbjerg Nybegynder
29. november 2005 - 12:51 #9
Det kan være det hjælper hvis jeg poster koden:

$na = $_GET['na'];
$fa = $_GET['fa'];
$fl = $_GET['fl'];
$er = $_GET['er'];

$dir="./assets/images/vi/";
$output = "";
    $mappe = opendir($dir) or die ("folder not found");
    while($fil = readdir($mappe)) {
      if ($fil != "." && $fil != "..") {
        $strenge_array = explode(" ",$fil); //array seperate path and filename
        $navn = $strenge_array['0']; //just use filename
        $ord_array = explode("_",$navn); //array filename chunks
        $name = $ord_array['0']; //player name
        $faction = $ord_array['1'];//first name chunk
        $florins = $ord_array['2'];//second name chunk (not used yet)
        $era = $ord_array['3'];//third name chunk (not used yet)
        /*HER SKER DET*/if ($name == $na && $faction == $fa && $florins == $fl && $era = $er) {
            $output .= '<strong>'."$name $faction $florins $era".'</strong><br>'.'<img src="./assets/images/vi/'.$navn.'"/><br>';
          }//if
      }//if 
    }//while

return $output;
Avatar billede dejbjerg Nybegynder
29. november 2005 - 12:56 #10
http://dejsign.dk/etomite/index.php?id=48

Prøv at vælge

Dej Almo 10k High - i de fire selectboxe

Meningen er at man skal kunne udelade kriterier, dvs. søge på f.eks. Dej 10k
Avatar billede jakobdo Ekspert
29. november 2005 - 13:01 #11
Hvor søger ud henne?
I en mappe eller mysql?
Avatar billede dejbjerg Nybegynder
29. november 2005 - 13:04 #12
Mappe..
Der er en navne konvention på filnavnene Dej_Almo_10k_high_1.jpg
Avatar billede jakobdo Ekspert
29. november 2005 - 13:19 #13
Du kunne måske bruge noget regexp?
Avatar billede dejbjerg Nybegynder
29. november 2005 - 13:21 #14
Til hvad?
Avatar billede jakobdo Ekspert
29. november 2005 - 13:28 #15
At udvælge de filer som skal matche! :o)
Du bruger jo selectbox1 til del1 af filen.
Du bruger jo selectbox2 til del2 af filen.
Du bruger jo selectbox3 til del3 af filen.
og
Du bruger jo selectbox4 til del4 af filen.

Ergo kunne du lave en regexp som ser om del1 matcher starten, del2, del3 osv...
Avatar billede dejbjerg Nybegynder
29. november 2005 - 13:42 #16
Ked af det, fatter hat..

Hvordan kommer jeg ud over at skulle lave mange if'er af det?

Kunne du sådan lidt pseudokode-agtigt skære det en smule mere ud i pap for lille dumme mig? :)
Avatar billede jakobdo Ekspert
29. november 2005 - 13:56 #17
Det jeg tænker på er noget i denne stil:

http://www.codebreaker.dk/exp/668284.php
Avatar billede dejbjerg Nybegynder
29. november 2005 - 14:08 #18
Årrhh du er en skat :)

Jeg forhøjer lige pointsne lidt for dit besvær :)

Skriv et svar

Mange tak for hjælpen
Avatar billede jakobdo Ekspert
29. november 2005 - 14:09 #19
Svar!
Avatar billede jakobdo Ekspert
29. november 2005 - 14:09 #20
Og jeg ved forresten ikke om jeg vil være din skat! :o)
Avatar billede jakobdo Ekspert
29. november 2005 - 14:13 #21
Takker for point!
Avatar billede dejbjerg Nybegynder
29. november 2005 - 14:18 #22
:)
Avatar billede dejbjerg Nybegynder
29. november 2005 - 20:40 #23
Resultatet for god ordens skyld:

$na = $_GET['na'];
$fa = $_GET['fa'];
$fl = $_GET['fl'];
$er = $_GET['er'];

    if($_GET['na'] == ""){
        $na = ".+?";
    }//if
   
    if($_GET['fa'] == ""){
        $fa = ".+?";
    }//if
   
    if($_GET['fl'] == ""){
        $fl = ".+?";
    }//if
   
    if($_GET['er'] == ""){
        $er = ".+?";
    }//if
   
    $find = $na . "_" . $fa . "_" . $fl . "_" . $er .".+?".".jpg"; //bruges til preg_match

$dir="./assets/images/vi/";
$output = "";
    $mappe = opendir($dir) or die ("folder not found");
    while($fil = readdir($mappe)) {
      if ($fil != "." && $fil != "..") {
        $strenge_array = explode(" ",$fil); //array seperate path and filename
        $filnavn = $strenge_array['0']; //just use filename
        $ord_array = explode("_",$filnavn); //opdel filnavn
        $name = $ord_array['0']; //navne stump
        $faction = $ord_array['1']; //faction stump
        $florins = $ord_array['2'];//florins stump
        $era = $ord_array['3'];//era stump
        if (preg_match("/".$find."/m",$fil)) {
            $output .= '<strong>'."$name $faction $florins $era".'</strong><br>'.'<img src="./assets/images/vi/'.$filnavn.'"/><br>';
          }//if
      }//if 
    }//while

return $output;
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