Avatar billede flol Nybegynder
20. januar 2009 - 14:41 Der er 4 kommentarer og
1 løsning

Udtrækning fra database, i en while løkke

Hey,
jeg er ved at lave et script der udtrækker alle antal lodder fra databasen:
---------Database-------------

id:     antal:     pulje:       brugerid:    tid:
1     1610     jackpot  1           2009-01-10 10:19:58
2     1610     jackpot  4           2009-01-10 10:34:56

------------------------------
Som man kan se har brugeren med brugerid = 1 1610 lodder,
og det samme har brugeren med brugerid = 4.
Men når jeg så laver denne kode:
-------------kode-------------

<select name="lod" size="30">
    <?
    include("../connect.php");
    $query = mysql_query("SELECT * FROM lodder WHERE pulje = 'jackpot'") or die(mysql_error());
    $i = 1;
    while($row = mysql_fetch_assoc($query)) {
        while($i <= $row['antal']) {
            ?>
            <option value="<? echo $row['brugerid']; ?>"><? echo "Lod nr. ".$i.", brugerid = ".$row['brugerid']; ?></option>
            <?
            $i++;
        }
    }
    ?>
</select>

------------------------------
udtrækker den kun brugerid 1's lodder, hvordan kan det være?
Avatar billede andreas13_fam Nybegynder
20. januar 2009 - 14:48 #1
Jeg er ikke ekspert men hvad er grunden til at du har 2 while
desuden vil jeg også mene at der skal stå <?php ..kode.. ?> og ikke <? ..kode.. ?>
Avatar billede flol Nybegynder
20. januar 2009 - 15:08 #2
<?php ..kode.. ?> og ikke <? ..kode.. ?>
burde ikke ha nogen betydning, det gør det samme.

Den ene While-løkke bruger jeg til at hente alle rækker i databasen, og den anden bruger jeg til at få alle antalet af lodder, ned på en lang række, kan ses her: http://www.flol.dk/flol2/konsys/findvinder.php

men den henter kun lodderne fra id 1 i databasen :/
Avatar billede flol Nybegynder
20. januar 2009 - 15:44 #3
Prøvede lige at sætte en for-løkke ind istedet for den ene while-løkke, og nu virker det åbenbart fint ;S
-----------------------
<select name="lod" size="30">
    <?
    include("../connect.php");
    $query = mysql_query("SELECT * FROM lodder WHERE pulje = 'jackpot'") or die(mysql_error());
    while($row = mysql_fetch_assoc($query)) {
        for($i = 1; $i <= $row['antal']; $i++) {
            ?>
            <option value="<? echo $row['brugerid']; ?>"><? echo "Lod nr. ".$i.", brugerid = ".$row['brugerid']; ?></option>
            <?
        }
    }
    ?>
</select>
----------------------
Avatar billede andreas13_fam Nybegynder
20. januar 2009 - 15:52 #4
Har du prøvet at se på http://dk2.php.net/while der er nogle eksempler med 2 while's
Har du også prøvet at fjerne den anden while, for at se hvad der giver problemmer, er det din SQL eller PHP.

Men for at sige det har jeg ingen ideer, men en anden måde man kan lave samme while er (hvis jeg husker rigtigt) sådan...

<select name="lod" size="30">
    <?php
    include("../connect.php");
    $query = mysql_query("SELECT * FROM lodder WHERE pulje='jackpot'") or die(mysql_error());

    while($row = mysql_fetch_assoc($query))
    {
            for($i=1; $i<=$row['antal']; $i++)
      {
      echo '<option value="'.$row['brugerid'].'">Lod nr. '.$i.', brugerid = '.$row['brugerid'].'</option>';
      }
    }
    ?>
</select>
<?php
    //For en god ordens skyld tjekker jeg lige hvor mange rækker der er i det du henter fra MySQL
    $num_rows = mysql_num_rows($query);
    {
    echo 'Antal bruger der blev hentet ned: '.$num_rows.'';
    }       
?>
Avatar billede andreas13_fam Nybegynder
20. januar 2009 - 15:52 #5
Arr der var en der var hurtiger end mig :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