PDA

Volledige versie bekijken : [php] if else constructie korter maken


maikel
%Europe/Berlin %566 %2006, 14:35
Hey !

ik zit met een vraagje,

ik heb een if - else constructie gemaakt om niet ingevulde dingen af te vangen.

Maar ik weet dat dit VEEL korter kan, maar heb geen idee meer waarmee, en hoe.
Is er iemand die me in de goede (zoek) richting kan sturen?

Hier de constructie:

if ($record[4] == "")
{
if ($record[5] == "")
{
if (record[6] == "")
{
echo "geen verdere gegevens <br />beschikbaar.";
} else {
echo "inhoud-r6: ".$record[6]." bladiebla";
}
} else {
if (record[6] == "")
{
echo "inhoud-r5: ".$record[5]." bladiebla";
} else {
echo "inhoud-r5: ".$record[5]." bladiebla";
echo "inhoud-r6: ".$record[6]." bladiebla";
}
}
} else {
if ($record[5] == "")
{
if (record[6] == "")
{
echo "inhoud-r4: ".$record[4]." bladiebla";
} else {
echo "inhoud-r4: ".$record[4]." bladiebla";
echo "inhoud-r6: ".$record[6]." bladiebla";
}
} else {
if (record[6] == "")
{
echo "inhoud-r4: ".$record[4]." bladiebla";
echo "inhoud-r5: ".$record[5]." bladiebla";
} else {
echo "inhoud-r4: ".$record[4]." bladiebla";
echo "inhoud-r5: ".$record[5]." bladiebla";
echo "inhoud-r6: ".$record[6]." bladiebla";
}
}
}


Bedankt alvast!

Cheers !

eagle
%Europe/Berlin %582 %2006, 14:59
Je kan werken met:

if(conditie1 == "" && conditie2 == ""){}

Er is ook een verkorte if else structuur, deze staat mooi beschreven op de php site, ze maakt gebruik van een vraagteken.

maikel
%Europe/Berlin %595 %2006, 15:17
Dank voor uw antwoord !

heb zelf ondertussen wat getest, en misschien klinkt dit gek,
maar staat hier niet hetzelfde, als in mijn eerste post?

if ( isset($record[4]) )
{
echo "inhoud-r4".$record[4]." bladiebla";
}
if ( isset($record[5]) )
{
echo "inhoud-r5".$record[5]." bladiebla";
}
if ( isset($record[6]) )
{
echo "inhoud-r6".$record[6]." bladiebla";
}


Heb deze zonet getest, geeft niet hetzelfde resultaat in ieder geval...
wie helpt me..


Cheers !

ps:meende dat het een switch was waarmee het korter kon maar weet het niet zeker.

brossiekoppie
%Europe/Berlin %662 %2006, 16:53
Ik zou echt niet weten waarom je ooit aan zo'n constructie nood zou hebben. Er is zeker een betere manier hoe je je probleem kan oplossen.

maikel
%Europe/Berlin %669 %2006, 17:03
En mijn vraag was, of iemand die wist welke dat was of hoe dat moest (en jij blijkt zo iemand te zijn :) ).
Mij een hint, een voorbeeld of een zet in de goeie richting zou willen geven.

Zou jij zo vriendelijk willen zijn jouw wijsheid met mij te delen, door me opweg te helpen?

Cheers !

josko
%Europe/Berlin %676 %2006, 17:14
Maikel op je vorige post:
Nee, dat is niet hetzelfde.
isset ==> is set. daar vraag je op of de variable gedeclareerd is.
empty vraagt op of ie leeg is. empty is dus in zekere zin gelijk aan $var == ""

maikel
%Europe/Berlin %682 %2006, 17:22
Hey,
de bovenste code (uit eerste post) geeft me het resultaat dat ik wil.

Dus de 2e code die ik postte is op het moment niet meer aan de orde (misschien dat dit eerder niet duidelijk was)

Ik heb geprobeerd het op de manier van eagle te doen, maar kwam daar niet helemaal aan uit, hoe krijg ik hier alle mogelijk opties afgevangen?

Bedankt voor jullie hulp tot nu toe !

Cheers !

UnrealEd
%Europe/Berlin %847 %2006, 21:20
allereerst kunnen we je niet echt helpen als we niet weten waarover het gaat. ik kan evengoed een lijstje if's tonen, waaruit je dan moet proberen opmaken wat juist wel en niet in die specifieke if moet staan, en wat juist weer in die andere moet staan.

vertel ons wat er allemaal nagekeken moet worden, in welke volgorde, en/of volgorde belangrijk is. enkel dan kunnen we je helpen.

zelf ben ik van mening dat je dat best voor jezelf uitzoekt hoe het korter kan. enkel jij weet hoe het juist in elkaar zit, niet wij.

begin met heel je if structuur gestructureerd in plain text op te schrijven (best in telegram stijl), en je zal zien dat de oplossing onmiddelijk volgt.

groeten en succes

maikel
%Europe/Berlin %883 %2006, 22:12
Ik heb nu dit als tijdelijke oplossing:


if ( $record[4] == "" )
{ echo "&nbsp;"; } else { echo "inhoud r4: ".$record[4]."<br />"; }

if ( $record[5] == "" )
{ echo "&nbsp;"; } else { echo "Inhoud r5: ".$record[5]."<br />"; }

if ( $record[6] == "" )
{ echo "&nbsp;"; } else { echo "Inhoud r6: ".$record[6]; }

Maar dit is niet juist, de spatie zou eiglijk gewoon niks moeten zijn,
dus:
als gevuld laat zien. (en uiteraard als niet gevuld laat niks zien).

Ik ben misschien een beetje onduidelijk, maar weet niet hoe ik het anders moet omschrijven.

En volgens mij is mijn oplossing ook niet alles. Maar weet gewoon niet hoe ik verder moet kijken, misschien stel ik wel een rare vraag kweet het ook niet,

Maar als iemand me kan helpen, BVD !

Cheers !

lord Greystoke
%Europe/Berlin %822 %2006, 20:44
$return = ''; // container

// container vullen
if($record[4] != '') $return .= 'inhoud-r4: '.$record[4].' <br />';
if($record[5] != '') $return .= 'inhoud-r5: '.$record[5].' <br />';
if($record[6] != '') $return .= 'inhoud-r6: '.$record[6].' <br />';

// indien container leeg is
if($return == '') $return = 'geen verdere gegevens <br />beschikbaar.';


// echo container
echo $return;


Zoiets?

Succes ;)

maikel
%Europe/Berlin %376 %2006, 10:01
Hey lord Greystoke,

Perfect! precies wat ik zocht, overzichtelijker en een stuk korter.
Maar hoe komt het nou dat de inhoud niet overschreven maar erbij geschreven wordt?

Danku danku !!

Cheers !

lord Greystoke
%Europe/Berlin %389 %2006, 10:20
Hallo Maikel,

.=

dit komt door de punt "." voor het "=" teken.
Werkt hetzelfde als b.v. += in javascript.

D.m.v. een punt voeg je dus iets toe aan een variabele i.p.v. de waarde te overschrijven.


;)

maikel
%Europe/Berlin %393 %2006, 10:26
OK dan !

ik word me toch wijs hier op dit forum !

Dankje Greystoke !

Cheers !

Emveedee
%Europe/Berlin %625 %2006, 16:00
Hallo Maikel,

.=

dit komt door de punt "." voor het "=" teken.
Werkt hetzelfde als b.v. += in javascript.

D.m.v. een punt voeg je dus iets toe aan een variabele i.p.v. de waarde te overschrijven.


;)

Dat is niet helemaal waar ;)
+= bestaat ook in php, deze gebruik je voor het optellen van 2 getallen.
.= is voor het samenvoegen van 2 strings.

$bla = $bla . $ble;
is dus hetzelfde als
$bla .= $ble;