missä vika?

Erikoinen ongelma mutta löytyisiköhän vastausta?

Otan tietokannasta tietoa ja kun kokeilen verrata rivejä if-lauseilla niin ainoastaan ensimmäinen if-lause menee oikein, mutta jostakin syystä toinen OR lause ei toimikkaan oikein.

Tässä tapauksessa siis $row[1] ja $row[2] tiedot ovat molemmissa 0, mutta kun tulostan
echo $muuttuja1; -> ohjelma tulostaa 1

Ainoastaan peräkkäisillä if-lauseilla ohjelma tulostaa 2.

Missä mahtaa olla vika?

while($row = mysql_fetch_row($haku)){


if($row[0]=='A'){

if($row[1]==0 OR $row[2]==0){
muuttuja1 ;
}
if($row[3]==0 OR $row[4]==0){
muuttuja2 ;
}


}else if($row[0]=='B'){

if($row[1]==0 OR $row[2]==0){
$muuttuja3 ;
}
if($row[3]==0 OR $row[4]==0){
$muuttuja4 ;
}


}

}
6337
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Kristallipallo on niin pirun himmeä tänään :(

Äänestä

Saattaa auttaa jos muuttaa noi OR sanat tuoksi ||

Äänestä
  • tuollaista 'OR' vipua. || on OR ja && on AND.

    SQL-kyselyissä taas OR ja AND

    Äänestä

  • keksa1 kirjoitti:

    tuollaista 'OR' vipua. || on OR ja && on AND.

    SQL-kyselyissä taas OR ja AND

    Sama homma oli kyllä '||' eli se ei tuntunut vaikuttavan, mutta pitää vielä kokeilla tuota.

    Äänestä

  • pitää kokeilla kirjoitti:

    Sama homma oli kyllä '||' eli se ei tuntunut vaikuttavan, mutta pitää vielä kokeilla tuota.

    "Tässä tapauksessa siis $row[1] ja $row[2] tiedot ovat molemmissa 0, mutta kun tulostan
    echo $muuttuja1; -> ohjelma tulostaa 1"

    Niinhän se on tuohon koodattukin.

    jos(row[1] == 0 TAI row[2] == 0)
    {
    muuttuja1 ;
    }

    Miksi muuttuja1 sisältö pitäisi olla 2? Tuohan tarkoittaa koodina sitä, että mikäli jompi kumpi näistä on totta, niin mennään suorittamaan aaltosulkujen sisältä koodi ja sitten eteenpäin. Ei tuo if-lause mikään silmukka ole, että se suorittaa alltosulkujen sisällön aina kun joku ehdoista on totta.

    Äänestä

  • keksa1 kirjoitti:

    "Tässä tapauksessa siis $row[1] ja $row[2] tiedot ovat molemmissa 0, mutta kun tulostan
    echo $muuttuja1; -> ohjelma tulostaa 1"

    Niinhän se on tuohon koodattukin.

    jos(row[1] == 0 TAI row[2] == 0)
    {
    muuttuja1 ;
    }

    Miksi muuttuja1 sisältö pitäisi olla 2? Tuohan tarkoittaa koodina sitä, että mikäli jompi kumpi näistä on totta, niin mennään suorittamaan aaltosulkujen sisältä koodi ja sitten eteenpäin. Ei tuo if-lause mikään silmukka ole, että se suorittaa alltosulkujen sisällön aina kun joku ehdoista on totta.

    Aivan totta. Oma mokani. Pitää käyttää for-lausekkeita...

    Äänestä

Kommentoi aloitusta


mahtaa olla kirjoitti:

Erikoinen ongelma mutta löytyisiköhän vastausta?

Otan tietokannasta tietoa ja kun kokeilen verrata rivejä if-lauseilla niin ainoastaan ensimmäinen if-lause menee oikein, mutta jostakin syystä toinen OR lause ei toimikkaan oikein.

Tässä tapauksessa siis $row[1] ja $row[2] tiedot ovat molemmissa 0, mutta kun tulostan
echo $muuttuja1; -> ohjelma tulostaa 1

Ainoastaan peräkkäisillä if-lauseilla ohjelma tulostaa 2.

Missä mahtaa olla vika?

while($row = mysql_fetch_row($haku)){


if($row[0]=='A'){

if($row[1]==0 OR $row[2]==0){
muuttuja1 ;
}
if($row[3]==0 OR $row[4]==0){
muuttuja2 ;
}


}else if($row[0]=='B'){

if($row[1]==0 OR $row[2]==0){
$muuttuja3 ;
}
if($row[3]==0 OR $row[4]==0){
$muuttuja4 ;
}


}

}

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu