Avatar billede -kenner- Nybegynder
02. november 2005 - 21:49 Der er 7 kommentarer og
1 løsning

Tvinge while til at loebe til 14, naar den udskriver fra database

Hej Eksperter,

Jeg har denne kode, som ikke helt vil, som jeg vil. Der er to problemer:
- Naar jeg koerer koden, saa stopper den i mine if'saetninger ved at beholde $size = 8, saa selv om der er 14 menu punkter i alt, saa alle dem der er over 8 ogsaa sat til $size = 14.

- Hvordan kan jeg faa min while der udskriver menupunkterne til at koerer 14 gange uanset antallet af menu punkter i tabellen?

Source:
$result = mysql_query("select * from 2nd_menu where Hmenu_ID = '".$top_menu_id."'") or die(mysql_error());
    $i = 1;
    while ($row = mysql_fetch_array($result)){
            if($i <= 7){
                $size = "1-7";
            } elseif($i = 8){
                $size = "8";
            } elseif($i = 9){
                $size = "9";
            } elseif($i <= 14){
                $size = "10-14";
            }
            $Hmenu_ID = $row['Hmenu_ID'];
                if($top_menu_punkt[$Hmenu_ID] == $top_menu_punktet){
                echo"<tr><!-- $i -->
                <td class=\"menu$size\" valign=\"center\" align=\"left\" width=\"138\" height=\"18\" OnMouseOver=\"this.className='menu".$size."over'\" OnMouseOut=\"this.className='menu$size'\"><a href=\"index.php?H=".$top_menu_punktet."&U".$row['ID']."\"><img src=\"images/spacer.gif\">".$row['Link']."</a></td>
              </tr>";
                }
            $i++;
    }
Avatar billede erikjacobsen Ekspert
02. november 2005 - 21:51 #1
if($i <= 7){
                $size = "1-7";
            } elseif($i == 8){
                $size = "8";
            } elseif($i == 9){
                $size = "9";
            } elseif($i <= 14){
                $size = "10-14";
            }
Avatar billede pidgeot Nybegynder
02. november 2005 - 21:52 #2
Men spørgsmålet er vel snarere hvorfor du bruger en while i stedet for en for.
Avatar billede -kenner- Nybegynder
02. november 2005 - 21:58 #3
pidgeot > Fordi jeg ikke er forfaerdelig god til PHP, saa jeg ved ikke hvordan jeg kan udskrive mene end en raekke fra en tabel uden en while.
Avatar billede pidgeot Nybegynder
02. november 2005 - 22:04 #4
for ($i=1;$i<=14;$i++) {
$row=mysql_fetch_array($result);
            if($i <= 7){
                $size = "1-7";
            } elseif($i == 8){
                $size = "8";
            } elseif($i == 9){
                $size = "9";
            } elseif($i <= 14){
                $size = "10-14";
            }
            $Hmenu_ID = $row['Hmenu_ID'];
                if($top_menu_punkt[$Hmenu_ID] == $top_menu_punktet){
                echo"<tr><!-- $i -->
                <td class=\"menu$size\" valign=\"center\" align=\"left\" width=\"138\" height=\"18\" OnMouseOver=\"this.className='menu".$size."over'\" OnMouseOut=\"this.className='menu$size'\"><a href=\"index.php?H=".$top_menu_punktet."&U".$row['ID']."\"><img src=\"images/spacer.gif\">".$row['Link']."</a></td>
              </tr>";
                }
}
Avatar billede -kenner- Nybegynder
03. november 2005 - 01:02 #5
Det virker super! Da i svarede hver sin del, saa synes jeg i skal dele pointene, saa send i et svar hver.
Avatar billede pidgeot Nybegynder
03. november 2005 - 01:07 #6
Bare lige til din orientering, det eneste erikjacobsen rettede var at du havde lavet en syntaksfejl i dine elseif-sætninger. Det var ingen egentlig løsning.
Avatar billede erikjacobsen Ekspert
03. november 2005 - 09:12 #7
Jeg samler ikke på point, tak. Mit indlæg 02/11-2005 21:51:44 er løsningen på problemet. Det er ligegyldigt om der bruges en while eller en for.
Avatar billede pidgeot Nybegynder
03. november 2005 - 09:35 #8
Beklager, havde ikke set spørgsmålet var inddelt i to problemer. :)
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