Avatar billede camban Nybegynder
19. september 2006 - 20:47 Der er 19 kommentarer og
1 løsning

switch case?

Hvorfor virker dette ikke:

<?php
switch($_GET['side']) {
    case $row_rs_Side['sidenavn']:
        include( $row_rs_Side['sideurl']);
        break;
}
?>

Er der nogen der kan hjælpe?
Avatar billede nielle Nybegynder
19. september 2006 - 21:00 #1
Fordi det der kommer efter en case sandsynligvis skal være en konstant ... altså ikke noget variabelt.

Men hvorfor gør du ikke bare sådan her?

if ($_GET['side'] == $row_rs_Side['sidenavn'])
    include($row_rs_Side['sideurl']);
Avatar billede camban Nybegynder
19. september 2006 - 21:13 #2
Jeg kan ikke få dit eksempel til at virke - går jeg noget forkert ved min menu?

<?php
                             
echo "<a href=?side=".$row_rs_Side['sidenavn'];
                                   
echo " class=\"menusub\">";
                                   
echo $row_rs_Side['menunavn'];

echo "</a><br>";

?>
Avatar billede camban Nybegynder
19. september 2006 - 21:20 #3
Kan godt få dette til at virke
                                      if ($_GET['side'] == "forside")
 
                                        include("forside.php");

Men ikke med database-henvisninger?
Avatar billede nielle Nybegynder
19. september 2006 - 21:21 #4
Min kode gør det som du forsøgte med din switch-case.

For at jeg kan forstå hvad det er du forsøger at lave, bliver du nok nødt til at give noget mere forklaring samt noget mere kode.
Avatar billede coderdk Praktikant
19. september 2006 - 22:58 #5
En case kan godt være variabel... Lad os lige se hele din kode; du må gøre et eller andet forkert ;)
Avatar billede coderdk Praktikant
19. september 2006 - 22:58 #6
Og som nielle skriver, må du godt forklare hvad du vil opnå ;)
Avatar billede camban Nybegynder
20. september 2006 - 08:01 #7
Der er egentlig ikke så meget at forklare og jeg har postet alt kode p.t. - Når man vælger et menupunkt skal en side includeres på index-siden:

Menuen:
<?php
                             
echo "<a href=?side=".$row_rs_Side['sidenavn'];
                                   
echo " class=\"menusub\">";
                                   
echo $row_rs_Side['menunavn'];

echo "</a><br>";

?>

Include:

<?php
switch($_GET['side']) {
    case $row_rs_Side['sidenavn']:
        include( $row_rs_Side['sideurl']);
        break;
    default:
    include("forside.php");
    break;
}
?>

jeg plejer at gøre sådan og det virker fint - dog har jeg ikke prøvet med database-poster.
Avatar billede coderdk Praktikant
20. september 2006 - 12:05 #8
Hvor kommer $row_rs_Side['sidenavn'], $row_rs_Side['menunavn'] og $row_rs_Side['sideurl'] fra? Der er ingen databasekald ;P
Avatar billede camban Nybegynder
20. september 2006 - 13:25 #9
Jo selvfølgelig er der det - troede det var en selvfølge ;o)

Start:

<?php require_once('Connections/test.php'); ?>
<?php
mysql_select_db($database_test, $test);
$query_rs_Side = "SELECT * FROM sideindhold";
$rs_Side = mysql_query($query_rs_Side, $test) or die(mysql_error());
$row_rs_Side = mysql_fetch_assoc($rs_Side);
$totalRows_rs_Side = mysql_num_rows($rs_Side);
?>

Til slut:

<?php
mysql_free_result($rs_Side);
?>
Avatar billede camban Nybegynder
20. september 2006 - 13:27 #10
Men der plejer ikke at være problemer med det - tror bestemt det er includen der er noget galt med??
Avatar billede coderdk Praktikant
20. september 2006 - 13:32 #11
Prøv lige at lave en var_dump( $row_rs_Side );
Avatar billede camban Nybegynder
20. september 2006 - 13:51 #12
Hvor skal den sættes ind?
Avatar billede camban Nybegynder
20. september 2006 - 13:58 #13
Har den erstattet include med var_dump( $row_rs_Side );

Skriver bool(false) ud ??
Avatar billede camban Nybegynder
20. september 2006 - 14:23 #14
Hvis jeg derimod skriver det oppe i menuen får jeg alt frem
<?php
echo "<a href=?side=".$row_rs_Side['sidenavn'];
echo " class=\"menusub\">";
echo $row_rs_Side['menunavn'];
echo "</a><br>";
var_dump( $row_rs_Side );
?> 
længere nede....under en anden <td> og <table> ligger så

nclude:

<?php
switch($_GET['side']) {
    case $row_rs_Side['sidenavn']:
        include( $row_rs_Side['sideurl']);
        break;
    default:
    include("forside.php");
    break;
}
?>

Måske er der problemer fordi jeg har det i 2 adskilte php-sektioner?
Avatar billede camban Nybegynder
20. september 2006 - 15:02 #15
Ok jeg har vist ikke postet al koden - troede ikke det havde nogen indflydelse:

<?php do { ?>
<td>
<?php
echo "<a href=?side=".$row_rs_Side['sidenavn'];
                                   
echo " class=\"menusub\">";
                                       
echo $row_rs_Side['menunavn'];
                                 
echo "</a><br>";
                                       
?>
</td>
<td class="normaltxt">&nbsp;|&nbsp;</td>

<?php } while ($row_rs_Side = mysql_fetch_assoc($rs_Side)); ?>

Da jeg fjernede do while - blev den første side includet - men menu bliver så ikke gentaget - hvordan kan jeg gøre det?
Avatar billede coderdk Praktikant
20. september 2006 - 15:11 #16
<?php

  while ($row_rs_Side = mysql_fetch_assoc($rs_Side))
  {

?>
<td>
<?php
echo "<a href=?side=".$row_rs_Side['sidenavn'];
                                 
echo " class=\"menusub\">";
                                     
echo $row_rs_Side['menunavn'];
                               
echo "</a><br>";
                                     
?>
</td>
<td class="normaltxt">&nbsp;|&nbsp;</td>

<?php

  }

?>
Avatar billede coderdk Praktikant
20. september 2006 - 15:19 #17
Du bruger ikke frames eller sådan noget? Siden $row_rs_Side ikke er sat?

Hvordan hænger dine filer og sider præcist sammen?
Avatar billede camban Nybegynder
20. september 2006 - 15:36 #18
Jeg bruger ikke frames -

Hvis jeg skriver sådan virker det fint - så bliver siden inkluderet lige under menupunktet i samme td...jeg forstår det ikke rigtigt.

<?php do { ?>
<td>
<?php
echo "<a href=?side=".$row_rs_Side['sidenavn'];
                                   
echo " class=\"menusub\">";
                                       
echo $row_rs_Side['menunavn'];
                                 
echo "</a><br>";
                                       
if ($_GET['side'] == $row_rs_Side['sidenavn'])
                                        include ($row_rs_Side['sideurl']);?>
                            </td>
<td class="normaltxt">&nbsp;|&nbsp;</td>

<?php } while ($row_rs_Side = mysql_fetch_assoc($rs_Side)); ?>
Avatar billede camban Nybegynder
20. september 2006 - 16:29 #19
Jeg har endelig fået det til at virke - satte en ekstra connection ind med flg. rettelse $query_rs_Side = "SELECT * FROM sideindhold WHERE sidenavn = '".$_GET['side']."';" ; og det hjalp en hel del.

Hvis du smider et svar siger jeg mange tak for tålmodigheden :o)
Avatar billede coderdk Praktikant
20. september 2006 - 17:01 #20
heheh ok :-D
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