Avatar billede dsb Nybegynder
22. august 2002 - 19:17 Der er 6 kommentarer og
1 løsning

while-løkker ødelægger hinanden :(

function specifik_stat($kol) {
    global $mysql_tabel;

    $query = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());

    print ('<table width="500" border="1" cellspacing="0" cellpadding="0">');
    print ("\n<tr>\n<td width=\"270\"><h2>".$kol."</h2></td>\n<td>&nbsp;</td>\n</tr>");
   
    /*

    Fjerner jeg denne kommentarblok virker den første løkke fint, men den anden køres aldig ?
    Min første mistanke var at det opstod en eller anden konflitk, for jeg bruger $row = mysql_fetch_array($query)
    i begge løkker, men efter at have prøvet at omdøbe dem virker det stadigvæk ikke :(
    Nogen som ved hvorfor det ikke virker.

    while ($row = mysql_fetch_array($query)) {
        if ($row[$kol])
        $total = $total + $row[antal];
    }
    */

    while ($row = mysql_fetch_array($query)) {
        if ($row[$kol]) {
            print ("\n<tr>\n<td>".$row[$kol]."</td>\n<td>".$row[antal]."</td>\n</tr>");
        }
    }

    print ("\n</tabel>\n<br />\n\n");

}
Avatar billede bongobride Nybegynder
22. august 2002 - 19:22 #1
<?
function specifik_stat($kol) {
    global $mysql_tabel;

    $query = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());

    print ('<table width="500" border="1" cellspacing="0" cellpadding="0">');
    print ("\n<tr>\n<td width=\"270\"><h2>".$kol."</h2></td>\n<td>&nbsp;</td>\n</tr>");
}

    while ($row = mysql_fetch_array($query)) {
        if ($row[$kol])
        $total = $total + $row[antal];
    }

    while ($row = mysql_fetch_array($query)) {
        if ($row[$kol]) {
            print ("\n<tr>\n<td>".$row[$kol]."</td>\n<td>".$row[antal]."</td>\n</tr>");
        }
    }

    print ("\n</tabel>\n<br />\n\n");
Avatar billede bongobride Nybegynder
22. august 2002 - 19:23 #2
Sorry, det skulle være:

<?
function specifik_stat($kol) {
    global $mysql_tabel;

    print ('<table width="500" border="1" cellspacing="0" cellpadding="0">');
    print ("\n<tr>\n<td width=\"270\"><h2>".$kol."</h2></td>\n<td>&nbsp;</td>\n</tr>");
}
    $query = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());
    while ($row = mysql_fetch_array($query)) {
        if ($row[$kol])
        $total = $total + $row[antal];
    }

    while ($row = mysql_fetch_array($query)) {
        if ($row[$kol]) {
            print ("\n<tr>\n<td>".$row[$kol]."</td>\n<td>".$row[antal]."</td>\n</tr>");
        }
    }

    print ("\n</tabel>\n<br />\n\n");
Avatar billede bongobride Nybegynder
22. august 2002 - 19:24 #3
hov igen :) ...

<?
function specifik_stat($kol) {
    global $mysql_tabel;

    print ('<table width="500" border="1" cellspacing="0" cellpadding="0">');
    print ("\n<tr>\n<td width=\"270\"><h2>".$kol."</h2></td>\n<td>&nbsp;</td>\n</tr>");
}
    $query = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());
    while ($row = mysql_fetch_array($query)) {
        if ($row[$kol])
        $total = $total + $row[antal];
    }

    while ($rowto = mysql_fetch_array($query)) {
        if ($rowto[$kol]) {
            print ("\n<tr>\n<td>".$rowto[$kol]."</td>\n<td>".$rowto[antal]."</td>\n</tr>");
        }
    }

    print ("\n</tabel>\n<br />\n\n");
Avatar billede dsb Nybegynder
22. august 2002 - 19:28 #4
og hvorfor er det lige du lukker min funktion ?

function specifik_stat($kol) {
    global $mysql_tabel;

    $query = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());

    print ('<table width="500" border="1" cellspacing="0" cellpadding="0">');
    print ("\n<tr>\n<td width=\"270\"><h2>".$kol."</h2></td>\n<td>&nbsp;</td>\n</tr>");
}

Så går scriptet da først galt.

Bemærk, det script jeg har skrevet i mit spørgsmål virker fint.
men jeg vil gerne have tilføjet den while-løkke som er kommenteret ud, men så fucker scripet op :(
Avatar billede teaspoon Nybegynder
22. august 2002 - 19:33 #5
du skal blot lave et kopi af $query som du kan bruge i anden while løkke. Når du kører igennem $query første gang, når den til sidste element, og kan derfor ikke komme længere.

Noget i denne retning burde virke:

$query1 = $query2 = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());

    print ('<table width="500" border="1" cellspacing="0" cellpadding="0">');
    print ("\n<tr>\n<td width=\"270\"><h2>".$kol."</h2></td>\n<td>&nbsp;</td>\n</tr>");

while ($row = mysql_fetch_array($query1)) {
        if ($row[$kol])
        $total = $total + $row[antal];
    }
   

    while ($row = mysql_fetch_array($query2)) {
        if ($row[$kol]) {
            print ("\n<tr>\n<td>".$row[$kol]."</td>\n<td>".$row[antal]."</td>\n</tr>");
        }
    }
Avatar billede dsb Nybegynder
22. august 2002 - 19:37 #6
teaspoon: hmm...syntes ellers jeg havde prøvet den løsning :-/
nå efter jeg ændrede det til:

    $query = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());
    $query2 = mysql_query("SELECT $kol, count(*) as antal FROM $mysql_tabel GROUP BY $kol ORDER BY antal DESC") or die(mysql_error());

virkede det :D
Avatar billede teaspoon Nybegynder
22. august 2002 - 19:39 #7
det andet skulle også virke. Der er jo ingen grund til at lave 2 helt ens forespørgsler til databasen.
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