Avatar billede dingkee Nybegynder
28. februar 2006 - 14:44 Der er 6 kommentarer og
1 løsning

Sql inde i While

Hej,

Jeg skal kører en sql inde i en while hvor jeg trækker en masse data ud af...

                    $sql2 = mysql_query("
                        SELECT
                            *
                        FROM
                            miniCMS_cross
                        WHERE
                            overid = '" . $id . "'
                    ");
                    while ($r2 = mysql_fetch_array($sql2)) {
                        echo "<a href=\"?mode=side&amp;id=" . $r2[underid] . "&amp;levelid=" . $r2[levelid] . "&amp;levelid2=" . $r2[levelid2] . "\"><span class=\"link2\"";
                            $sql2 = ("SELECT * FROM miniCMS WHERE id = '" . $r2[underid] . "'"); {
                            $result2 = mysql_query($sql2) or die (mysql_error());
                            $siden = mysql_fetch_array($result2);
                           
                            $overskrift = $siden["overskrift"];
                                echo"
                                    $overskrift
                                ";
                            }
                      echo"
                        </span></a><br />";
                        }

hvis jeg fjerner den inderste sql virker while fint, men når den kommer på virker intet...

Nogen der kan se hvorfor?
Avatar billede fixxxer Nybegynder
28. februar 2006 - 14:55 #1
Du overskrive din MySQL Resource $sql2 med en streng af samme navn.

$sql2 = ("SELECT * FROM miniCMS WHERE id = '" . $r2[underid] . "'");


Utestet, men det burde illustrer løsningen:

                    $sql2 = mysql_query("
                        SELECT
                            *
                        FROM
                            miniCMS_cross
                        WHERE
                            overid = '" . $id . "'
                    ");
                    while ($r2 = mysql_fetch_array($sql2)) {
                        echo "<a href=\"?mode=side&amp;id=" . $r2[underid] . "&amp;levelid=" . $r2[levelid] . "&amp;levelid2=" . $r2[levelid2] . "\"><span class=\"link2\"";
                            $ny_sql = "SELECT * FROM miniCMS WHERE id = '" . $r2[underid] . "'";
                            $result2 = mysql_query($ny_sql) or die (mysql_error());
                            $siden = mysql_fetch_array($result2);
                         
                            $overskrift = $siden["overskrift"];
                                echo"$overskrift";
                      echo"
                        </span></a><br />";
                        }
Avatar billede nielle Nybegynder
28. februar 2006 - 14:55 #2
I din while bruger du $sql2 som det query-result du looper over.

... men inden i whilen overskriver du din $sql 2 med denne:

$sql2 = ("SELECT * FROM miniCMS WHERE id = '" . $r2[underid] . "'");
Avatar billede fixxxer Nybegynder
28. februar 2006 - 14:56 #3
Og det lader i øvrigt til at være en expression?

$sql2 = ("SELECT * FROM miniCMS WHERE id = '" . $r2[underid] . "'"); {
...
}

Guderne vide hvorfor :)
Avatar billede nielle Nybegynder
28. februar 2006 - 15:01 #4
Parenteserne rundt om har ingen efffekt - det er bare fyld :^)

Her er en - vil jeg vove at påstå - mere læsbar version:

$sql1 = "SELECT * FROM miniCMS_cross WHERE overid = '" . $id . "'";
$result1 = mysql_query();

while ($row1 = mysql_fetch_array($result1))
{
    echo "<a href=\"?mode=side&amp;id=" . $r2[underid] . "&amp;levelid=" . $r2[levelid] . "&amp;levelid2=" . $r2[levelid2] . "\"><span class=\"link2\"";

    $sql2 = "SELECT * FROM miniCMS WHERE id = '" . $row1[underid] . "'";
    $result2 = mysql_query($sql2) or die(mysql_error());
    $row2 = mysql_fetch_assoc($result2);

    echo $row2["overskrift"];
    echo "</span></a><br />";
}
Avatar billede dingkee Nybegynder
28. februar 2006 - 15:04 #5
fixxxer >> Det virkede sørme... Tak for hjælpen :)

Nielle >> Fik ikke lige tjekket dit script... Men tak fordi du gad at hjælpe :)
Avatar billede fixxxer Nybegynder
28. februar 2006 - 15:09 #6
Tak for point :)
Avatar billede nielle Nybegynder
28. februar 2006 - 15:22 #7
No prob. :^)
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