Avatar billede nickern Nybegynder
14. august 2007 - 12:14 Der er 17 kommentarer og
1 løsning

2 if-sætninger efter hinanden?

hejsa

Jeg sidder og skal bruge 2 oplysninger når man skal tilføje noget i min db.

Først tjekker den om hvorvidt den første regel er overholdt, men når jeg så vil tjekke om den næste også er overholdt hopper den bare over den. hvorfor det?

jeg gør brug af denne kode;                
if ($x == 1) {
echo "Du har ikke angivet dit X<br>";
}

er der noget forkert i den kode?

eller er det fordi jeg kører to if-sætninger i streg? skal jeg slå dem sammen til en? og hvordan gør jeg det i praksis?
Avatar billede barklund Nybegynder
14. august 2007 - 12:18 #1
Der er da kun én if-sætning? Prøv at indsætte her hvad du helt præcist har skrevet :)
Avatar billede jakobdo Ekspert
14. august 2007 - 12:18 #2
Prøv at vis begge dine if-sætninger.
Avatar billede nickern Nybegynder
14. august 2007 - 12:30 #3
if (eregi("([a-z0-9\.]+)\@([a-z0-9\.]+)\.([a-z]+)", $mail) == true)
                {

                        $res = mysql_query("select mail from newsletter where mail='$mail'");
                        $num = mysql_num_rows($res);

                        if ($num > 0) {
                            echo "Din mail er allerede tilmeldt nyhedsbrevet";
                            }
                                                            if ($sex == køn) {
                                    echo "Du har ikke angivet dit køn<br>";
                                }
                                else {
       
                                    mysql_query("INSERT INTO newsletter (mail, sex) VALUES ('$mail', '$sex')");
                            echo "Du er hermed tilmeldt vores nyhedsbrev!";
                                }}

        else
            {
Avatar billede bpuschl Nybegynder
14. august 2007 - 12:38 #4
Er køn en variabel? i så fald skal du nok smide et $ foran. Ellers hvis det er en konstant, skal det i ""
Avatar billede bpuschl Nybegynder
14. august 2007 - 12:38 #5
Og så ved jeg ikke hvor glad php er for ø i et variabel navn??
Avatar billede mcardle Nybegynder
14. august 2007 - 12:40 #6
Hvad er det "$sex == køn"...

Det kan man ikke.

Vis lige hele scriptet.

//mcardle
Avatar billede nickern Nybegynder
14. august 2007 - 12:46 #7
<select name="sex" size="1" class="dropdown">
<option selected>Mand</option>
<option selected>Kvinde</option>
<option selected>Køn</option>
</select>

jeg har min dropdown boks der ser sådan ud - den skal tilmelde brugeren hvis mand/kvinde er tastet - men står der køn

hvis jeg blot skriver køn tilmelder den ham med køn, og den tjekker ikke længere hvorvidt mail-adressen allerede er i dben
Avatar billede bpuschl Nybegynder
14. august 2007 - 12:50 #8
if ($sex == "køn")
Avatar billede bpuschl Nybegynder
14. august 2007 - 12:51 #9
Eller retter sagt    if ($sex == "Køn")
Avatar billede nickern Nybegynder
14. august 2007 - 12:55 #10
Ja - så spytter den noget ud - men den tilføjer den stadig til min db med konstanten Køn under kolonnen sex

hvordan får jeg den til at stoppe der? den gjorde det jo før, og der har man ikke en mysql shoot down
Avatar billede mcardle Nybegynder
14. august 2007 - 12:55 #11
Det er fint - Det må man gerne.

//mcardle
Avatar billede jakobdo Ekspert
14. august 2007 - 12:56 #12
Det bør vel være:
if($_POST['sex'] == 'køn')
Avatar billede mcardle Nybegynder
14. august 2007 - 12:58 #13
Ellers så skrive $sex = $_POST["sex"]; i toppen.
Avatar billede nickern Nybegynder
14. august 2007 - 12:58 #14
har angivet øverst at
        $mail = $_POST['mail'];
        $sex = $_POST['sex'];
så det burde det ikke nej:)

men hvorfor tilføjer den alligevel min db? den skal jo først tilføje noget i dben hvis de 2 if-sætninger ikke er overholdt?
Avatar billede mcardle Nybegynder
14. august 2007 - 13:08 #15
Det er fordi du har skrevet køn med lille, det skal være if($sex == "Køn");

//mcardle
Avatar billede mcardle Nybegynder
14. august 2007 - 13:08 #16
Det her vil virke.:

if (eregi("([a-z0-9\.]+)\@([a-z0-9\.]+)\.([a-z]+)", $mail) == true){
    $res = mysql_query("select mail from newsletter where mail='$mail'");
    $num = mysql_num_rows($res);

    if ($num > 0) {
        echo "Din mail er allerede tilmeldt nyhedsbrevet";
    }
    else{
        if($sex != "Køn" && $sex == "Mand" || $sex == "Kvinde"){
            mysql_query("INSERT INTO newsletter (mail, sex)
                VALUES ('$mail', '$sex')");
       
            echo "Du er hermed tilmeldt vores nyhedsbrev!";
        }
        else {
            echo "Du har ikke angivet dit køn<br>";
        }
    }
}
else{
    echo "Din email er ikke valideret korrekt";
}
Avatar billede nickern Nybegynder
14. august 2007 - 13:39 #17
takker mcardle - ligger du et svar?
Avatar billede mcardle Nybegynder
14. august 2007 - 13:41 #18
Jepper, svar.

//mcardle
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