switch gebruiken in While Loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Raymond

raymond

25/06/2008 16:56:00
Quote Anchor link
ik wil een switch opbouwen in een while loop maar is dit mogelijk op deze manier, of wat doe ik fout.

ik krijg de volgende error:
Parse error: syntax error, unexpected T_WHILE, expecting T_CASE or T_DEFAULT or '}' in E:\www\webroot\seo\datasource.php on line 10

het script:

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
26
<?php
    $db
= mysql_connect("localhost", "middelman", "*****");
    mysql_select_db("middelman", $db);
    $result = mysql_query("SELECT s.id, s.name, s.href, c.content FROM t_sitemap AS s, t_content AS c WHERE s.id = c.id ");
    
    header('Content-Type: text/xml;charset=utf-8');
    $base = strtolower(substr($_SERVER['SERVER_PROTOCOL'], 0, strrpos($_SERVER['SERVER_PROTOCOL'], '/'))) . '://' . $_SERVER['SERVER_NAME'] . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));

    switch($_GET['swfaddress']){
        while($fetch_arr = mysql_fetch_array($result)){
            case.
$fetch_arr[href].:
                echo('<h1>'.$fetch_arr[name].'</h1>');
                echo('<div>'.$fetch_arr[content].'</div>');
            break;
        }
        
         default:

            echo('<p>Page not found.</p>');
         break;
    
    }



    mysql_free_result($result);  

?>


alvast bedankt,
Gewijzigd op 01/01/1970 01:00:00 door Raymond
 
PHP hulp

PHP hulp

28/11/2024 22:30:24
 
Stefan van Iwaarden

Stefan van Iwaarden

25/06/2008 16:57:00
Quote Anchor link
je moet de while niet in je switch zetten, maar de switch in je while ;)
 
Raymond

raymond

25/06/2008 17:32:00
Quote Anchor link
dan zou het der zo uit komen te zien maar dan print hij heel vaak default en switch

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
    $db
= mysql_connect("localhost", "root", "*****");
    mysql_select_db("middelmanwonen", $db);
    $result = mysql_query("SELECT s.id, s.name, s.href, c.content FROM t_sitemap AS s, t_content AS c WHERE s.id = c.id ");
    
    header('Content-Type: text/xml;charset=utf-8');
    $base = strtolower(substr($_SERVER['SERVER_PROTOCOL'], 0, strrpos($_SERVER['SERVER_PROTOCOL'], '/'))) . '://' . $_SERVER['SERVER_NAME'] . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));

    
        while($fetch_arr = mysql_fetch_array($result)){
            switch($_GET['swfaddress']){
                case
$fetch_arr[href]:
                    echo('<h1>'.$fetch_arr[name].'</h1>');
                    echo('<div>'.$fetch_arr[content].'</div>');
                break;
                                
                default:

                    echo('<p>Page not found.</p>');
                 break;
            }
        }


    mysql_free_result($result);  

?>
Gewijzigd op 01/01/1970 01:00:00 door raymond
 
Stefan van Iwaarden

Stefan van Iwaarden

25/06/2008 17:40:00
Quote Anchor link
na je code wat beter bekeken te hebben snap ik ook niet waarom je uberhaupt een switch gebruikt, een if is veel logischer volgens mij. Je controleert namelijk alleen maar of iets bestaat of niet, een switch is voornamelijk bedoeld als je veel keuzemogelijkheden hebt.

probeer dus eens een if / else constructie.
 
Raymond

raymond

25/06/2008 22:58:00
Quote Anchor link
Dit script gaat op de achtergrond van een Flash website draaien en door gebruik te maken van swfaddress krijg ik op deze manier de content ook als html in de pagina. zodat dit geoptimaliseerd is voor de indexering van google.

vandaar dat ik gebruik maak van een switch.
Gewijzigd op 01/01/1970 01:00:00 door raymond
 
Riemer

Riemer

25/06/2008 23:08:00
Quote Anchor link
Dat case/switch zou vervangen kunnen worden door een if-else constructie. Dit zijn gewoon language constructies en hebben niks te maken met de uiteindelijke output, het zijn gewoon manieren om hetzelfde op te schrijven. Case wordt in het algemeen meer gebruikt als er meerdere opties zijn waar de geteste waarde aan kan voldoen.

Maar dan nog, ik zou nog niet weten waarom het niet werkt. Misschien een idee om te kijken of die query wel gelukt is? Daarna zou ik kijken of de waardes wel correct zijn geplaatst in de database (lees: identiek aan de waarde, waar het aan moet voldoen)
 
Raymond

raymond

26/06/2008 20:05:00
Quote Anchor link
het is opgelost met een if.
En werkt perfect.

Badankt voor de input.

script:
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
26
27
28
29
30
<?
header('Content-Type: text/xml;charset=utf-8');
    $base = strtolower(substr($_SERVER['SERVER_PROTOCOL'], 0, strrpos($_SERVER['SERVER_PROTOCOL'], '/'))) . '://' . $_SERVER['SERVER_NAME'] . substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));
    
    $db = mysql_connect("localhost", "middelman", "****");
    mysql_select_db("middelman", $db);
    $result = mysql_query("SELECT s.id, s.name, s.href, c.content FROM t_sitemap AS s, t_content AS c WHERE s.id = c.id ");
    
    while($fetch_arr = mysql_fetch_array($result)){ // Overbrengen van query naar array.
       $titles[$fetch_arr[href]] = $fetch_arr[name];
       $contents[$fetch_arr[href]] = $fetch_arr[content];
    }
    
        
    mysql_free_result($result);
    
    if($_GET['swfaddress'] != "/"){
        echo($_GET['swfaddress']);
        echo('<h1>'.$titles[$_GET['swfaddress']].'</h1>');
        echo('<div>'.$contents[$_GET['swfaddress']].'</div>');
    }

    else{
        echo($_GET['swfaddress']);
        echo('<h1>'.$titles['/startpagina/'].'</h1>');
        echo('<div>'.$contents['/startpagina/'].'</div>');
    }

    
    


?>
Gewijzigd op 01/01/1970 01:00:00 door raymond
 



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.