if/else in een while?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maurice prive

Maurice prive

31/01/2007 23:53:00
Quote Anchor link
Hoi,

Ik heb de volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
while($rw = mysql_fetch_array($r))
{
$first = ($rw['order'] == '0') ? ' class="first"' : '';
$current = ($rw['location'] == get_bb_location()) ? ' id="current"' : '';
echo '<li ' . $first . '><a href="' . $rw['page'] . '"' . $current . '>' . $rw['item'] . '</a></li>';
}

Werkt allemaal prima. Mijn vraag gaat over dit specifieke stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$current = ($rw['location'] == get_bb_location()) ? ' id="current"' : '';

Het haalt de loaction uit de db en vergelijkd die met de uitkomst van get_bb_location(). Ik wil hier eerst op andere loactions laten controleren en daarna pas gebruikmakend van die met die uit de db. Dan krijg je dus iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if $current = (locatie1 == get_bb_location()) ? ' id="current"' : '';
elseif $current = (locatie2 == get_bb_location()) ? ' id="current"' : '';
else $current = ($rw['location'] == get_bb_location()) ? ' id="current"' : '';

Maar dit werkt niet. Wat moet ik veranderen om dit wel werkend te krijgen?

Alvast bedankt
 
PHP hulp

PHP hulp

16/11/2024 20:05:08
 
Kalle P

Kalle P

01/02/2007 01:05:00
Quote Anchor link
die if else is shorttag, je gebruikt ze als if elseif else... maar die heb je allemaal al shortag if-else gemaakt...

Kijk eens op php.net hoe het moet.

http://nl2.php.net/manual/en/language.control-structures.php

Overigens zou ik in dit geval voor een switch() gaan.

Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
while(){
   if(){
   }
   else if(){
   }
   else{
   }
}
 
Maurice prive

Maurice prive

01/02/2007 16:33:00
Quote Anchor link
AHa ok en kun je me ook een complete code geven (zie mijn voorbeeld) hoe ik deze in deze switch moet gooien? Hier lukt het nml niet, dus ik doe iets niet goed.

Greetz
 
Jos

Jos

01/02/2007 17:34:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Vb 1, true vergelijken
switch(true) {
    case
1==1:
        print '1 is dus wel 1!';
        break;
    case
1==2:
        print '1 is dus 2!';
        break;
    default:

        print 'Geen enkele case true!';
        //break;
}

// Vb 2, string vergelijken
$tekst = 'abc';
switch($tekst) {
    case
'abc':
        print 'Tekst is abc!!';
        break;
    case
'def':
        print 'Tekst is def!!';
        break;
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Jos
 
Maurice prive

Maurice prive

01/02/2007 17:39:00
Quote Anchor link
Beadnkt voor je reactie Jos, maar als UBER noob ken ik hier niet veel mee. Doelde op een voorbeeld met de gegevens uit het laatste stukje code van mijn eerste post :)
 
Maurice prive

Maurice prive

02/02/2007 17:31:00
Quote Anchor link
Iemand?
 
Maurice prive

Maurice prive

03/02/2007 15:10:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$current = (locatie1 == get_bb_location() || locatie2 == get_bb_location() || $rw['location'] == get_bb_location()) ? ' id="current"' : '';

Werkt ook niet
 
- SanThe -

- SanThe -

03/02/2007 15:43:00
Quote Anchor link
Zijn 'locatie1' en 'locatie2' constanten?
 
Maurice prive

Maurice prive

03/02/2007 17:53:00
Quote Anchor link
kijk, locatie is een db gevuld met locatie10, locatie11 etc

Locatie1 en locatie2 kon ik niet in de db tabel verwerken, dus daarom wil ik eerst daarop checken of die gelijk is aan bb_get_location en daarna pas de locations uit de location db.
 
- SanThe -

- SanThe -

03/02/2007 18:26:00
Quote Anchor link
SanThe schreef op 03.02.2007 15:43:
Zijn 'locatie1' en 'locatie2' constanten?

Je geeft niet echt antwoord op deze vraag.
Maar indien het geen constanten zijn, maar variabelen zijn zal er toch een $ aan moeten zitten.
 
Maurice prive

Maurice prive

03/02/2007 18:37:00
Quote Anchor link
Locatie1 en locatie2 zijn vaste waarden/tekst dus constanten

Het moet dus die hard checken of de tekst Locatie1 voldoet aan bb_get_location (die dus ook location1 kan spugen)
 
- SanThe -

- SanThe -

03/02/2007 18:44:00
Quote Anchor link
Even samenvatten:
- Een constante heeft altijd dezelfde waarde en die maak je met define().
- Een variabele heeft wisselende waarde en die schrijf je altijd met een $ dus: $variabele.
- Tekst staat altijd tussen quotes. Dus 'tekst' of "tekst".
 
Maurice prive

Maurice prive

03/02/2007 21:09:00
Quote Anchor link
Aha dus het moet zijn:

$current = ('locatie1' == get_bb_location() || $rw['location'] == get_bb_location()) ? ' id="current"' : '';

?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.