Avatar billede tanzaweb Nybegynder
03. januar 2005 - 17:13 Der er 5 kommentarer og
1 løsning

fejl i while løkke

Hej jeg får en fejl i denne while løkke, har prøvet mange forskellige ting, men den bliver ved med at gentage sig selv så den når jo ikke til konklusiionen at den har nået antallet 2.
Jeg er blevet blind nu sikkert en dum fejl.

<div align="center">
    <?php
    include_once("dacon.php");
    $result=mysql_query("SELECT * FROM sponsors WHERE sel = '1' ORDER BY RAND() LIMIT 2");
    while ($row = mysql_fetch_array($result)){
        $count = mysql_num_rows($result);

       
        while (sel==0||$count <= 2){
        ?>
        <a href="<?php echo ($row['sp_url']);?>" target="_blank"><img src="<?php echo ($row['sp_billede']);?>" border="0" vspace="5" width="110" alt="Tilfældig galleri billede"></a>
        <?php
        }
        while (sel==1||$count <= 2){ ?>
        <a href="window.php?id=<?php echo $row['sp_id']; ?>" onclick="window.open('window.php?id=<?php echo $row['sp_id']; ?>', 'window_name', 'toolbar=yes, location=yes, status=yes, menubar=yes, scrollbars=yes, resizable=yes, width=600, height=400'); return false">
            <img src="<?php echo ($row['sp_billede']);?>" border="0" vspace="5" width="110" alt="Tilfældig galleri billede"></a>
        <?php
            }
            }
        ?>
    </div>
Avatar billede jakoba Nybegynder
03. januar 2005 - 17:34 #1
<div align="center">
    <?php
    include_once("dacon.php");
    $result=mysql_query("SELECT * FROM sponsors WHERE sel = '1' ORDER BY RAND() LIMIT 2");
    while ($row = mysql_fetch_array($result)){  //1 FEJL
        $count = mysql_num_rows($result);        //1 FEJL

     
        while (sel==0||$count <= 2){    //2 FEJL
                                        //mindst 1 FEJL
        ?>                       
        <a href="<?php echo ($row['sp_url']);?>" target="_blank"><img src="<?php echo ($row['sp_billede']);?>" border="0" vspace="5" width="110" alt="Tilfældig galleri billede"></a>
        <?php
        }
        while (sel==1||$count <= 2){    //2 FEJL
                                        //mindst 1 FEJL
        ?>
        <a href="window.php?id=<?php echo $row['sp_id']; ?>" onclick="window.open('window.php?id=<?php echo $row['sp_id']; ?>', 'window_name', 'toolbar=yes, location=yes, status=yes, menubar=yes, scrollbars=yes, resizable=yes, width=600, height=400'); return false">
            <img src="<?php echo ($row['sp_billede']);?>" border="0" vspace="5" width="110" alt="Tilfældig galleri billede"></a>
        <?php
            }
            }
        ?>
    </div>

efter et kort kik tæller jeg mindst 8 seriøse fejl i den kode du har postet. Det er mange.

Hvis du vil lære at kode php og har tålmodighed til at høre efter vil jeg gerne prøve at forklare dem.

Hvis du bare vil have dit program til at virke gider jeg ikke, men der skal nok være en anden der vil :-)

mvh JakobA
Avatar billede tanzaweb Nybegynder
03. januar 2005 - 17:41 #2
du må gerne forklarer, det vil jo være at fortrække
Avatar billede tanzaweb Nybegynder
03. januar 2005 - 17:47 #3
$result=mysql_query("SELECT * FROM sponsors WHERE sel = '1' ORDER BY RAND() LIMIT 2");
    while ($row = mysql_fetch_array($result)){  //1 FEJL
denne sektion virker jo egentlig fint hvad er fejlen i den?

$count = mysql_num_rows($result);        //1 FEJL
og denne læser også rækkerne, hvad er fejlen her?
Avatar billede martor Nybegynder
03. januar 2005 - 23:33 #4
Jeg vil foreslå dig at bruge mysql_fetch_assoc, i stedet for mysql_fetch_array og så er det en god ide at lave din count inden du ryger ind i while-løkken. Ingen grund til at lave den hver gang.

Mht. fejlen i din while-løkke, så er der umiddelbart en fejl i at du skriver "sel==0", sel er jo ingenting... går ud fra at det skulle være $sel (eller $row['sel']). Derudover skal du være opmærksom på at med mindre du i din while-løkke ændrer enten $sel eller $count, så vil den bare loope derudaf! Og så er der endelig brugen af ||. Hvis du har flere kriterier i din while, så vær opmærksom på at blot en af dem skal være sand for at tage endnu en tur, så længe du bruger ||.

MEN, er det overhovedet nødvendigt med den while? Er det ikke nemmere at løse med en if? Du er jo allerede inde i en while, fra dit db-udtræk.

Håber det hjælper lidt... men jeg kunne nu også godt tænke mig at høre hvad fejlene JakobA har fundet er helt præcist...
Avatar billede tanzaweb Nybegynder
03. januar 2005 - 23:51 #5
sel er er en række i db tabellen og nu har jeg løst det, det var bare en dum fejl fra min side som jeg nu har kæmpet med i 3 dage. øvøvøvøvøv

din kommentar hjalp faktisk lidt på at åbne mine øjne.

Point?
Avatar billede tanzaweb Nybegynder
24. maj 2005 - 15:35 #6
Aldring noget svar tager dem selv
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