Avatar billede tanzaweb Nybegynder
07. marts 2006 - 21:42 Der er 1 kommentar og
1 løsning

Udskriv kun 1 gang

Jeg skal bruge en løsning til et udtræk jeg har fra en MySql database.

Jeg har en tabel hvor en række evt. ikke indeholder noget eller kun 1 ikke skal udskrives en <ul>. Men der kan også være flere rækker i en kolonne (Menu_id_Sider) som indeholder det samme id som det ses herunder.
Hvis der er det skal der udskrivs en <ul> men kun en selv om der er flere.
Har prøvet flere løsninger uden held.

Side_id    Side    Menu_id_Sider
2    Home    1           
3    Contact    10           
5    How to    11           
6    Tanzania    2           
7    East Africa    2           
8    Health    2           
9    Sports    2           
10    Special report    2           
11    World    2           


I øjebliket ser koden således ud og det er bare et forsøg ud af flere:

$result_links = mysql_query("SELECT * FROM mainmenu ORDER BY Menu_Position");
echo "
<!-- menu tree -->
<ul id=\"udm\" class=\"udm\">
";
while ($row_links = mysql_fetch_array($result_links)){
echo "
    <li><a href=\"index.php\" title=\"".$row_links['Menu_Title']."\">".$row_links['Menu']."</a>";
    $result_sider = mysql_query("SELECT * FROM sider WHERE Menu_id_Sider = '".$row_links['Menu_id']."' ORDER BY Side");
    while ($row_sider = mysql_fetch_array($result_sider)){
   
    $pict=$row_sider['Side'];
    if(!$pict){
    }
    else{
        echo "<ul>";
        }
        echo "<li><a href=\"index.php\" title=\"".$row_sider['Side_Title']."\">".$row_sider['Side']."</a></li>";
        $pict=$row_sider['Side'];
    if(!$pict){
    }
    else{
        echo "</ul>";
        }   
    }
    echo "</li>";
}
echo "</ul>";
Avatar billede tanzaweb Nybegynder
08. marts 2006 - 12:26 #1
Har ændret koden lidt så den nu ser således ud:

$result_links = mysql_query("SELECT * FROM mainmenu ORDER BY Menu_Position");
echo "
<!-- menu tree -->
<ul id=\"udm\" class=\"udm\">
";
while ($row_links = mysql_fetch_array($result_links)){
echo "
    <li><a href=\"index.php\" title=\"".$row_links['Menu_Title']."\">".$row_links['Menu']."</a>";
    $result_sider = mysql_query("SELECT * FROM sider WHERE Menu_id_Sider = '".$row_links['Menu_id']."' ORDER BY Side");
    while ($row_sider = mysql_fetch_array($result_sider)){
    $rows = mysql_num_rows($result_sider);
    if($rows <= 1){
    }
    else{
        echo "<ul>";
        }
        if($rows <= 1){
        }
        else{       
        echo "<li><a href=\"index.php\" title=\"".$row_sider['Side_Title']."\">".$row_sider['Side']."</a></li>";
        }
        if($rows <= 1){
    }
    else{
        echo "</ul>";
        }   
    }
    echo "</li>";
}
echo "</ul>";

Så nu skriver den ikke <ul> og </ul> ud efter dem hvor der kun er en i Menu_side_id kolonnen med samme nummer.
Sådan her:
<li><a href="index.php" title="">Home</a></li>
<li><a href="index.php" title="">News</a>
<ul><li><a href="index.php" title="">Business News</a></li></ul>
<ul><li><a href="index.php" title="">culture</a></li></ul>
<ul><li><a href="index.php" title="">East Africa</a></li></ul>
<ul><li><a href="index.php" title="">Health</a></li></ul>
<ul><li><a href="index.php" title="">IT</a></li></ul>
<ul><li><a href="index.php" title="">Science</a></li></ul>
<ul><li><a href="index.php" title="">Special report</a></li></ul>
<ul><li><a href="index.php" title="">Sports</a></li></ul>
<ul><li><a href="index.php" title="">Tanzania</a></li></ul>
<ul><li><a href="index.php" title="">World</a></li></ul>
</li>
<li><a href="index.php" title="">Links</a>
<ul><li><a href="index.php" title="">Add your Link</a></li></ul>
<ul><li><a href="index.php" title="">Edit Link</a></li></ul>
<ul><li><a href="index.php" title="">Help to Links</a></li></ul>
<ul><li><a href="index.php" title="">Link to us</a></li></ul>
<ul><li><a href="index.php" title="">Links Directory</a></li></ul>
</li>
<li><a href="index.php" title="">Business</a></li>

Men skal helst se sådan her ud:
<li><a href="index.php" title="">Home</a></li>
<li><a href="index.php" title="">News</a>
<ul><li><a href="index.php" title="">Business News</a></li>
<ul><li><a href="index.php" title="">culture</a></li>
<ul><li><a href="index.php" title="">East Africa</a></li>
<ul><li><a href="index.php" title="">Health</a></li>
<ul><li><a href="index.php" title="">IT</a></li>
<ul><li><a href="index.php" title="">Science</a></li>
<ul><li><a href="index.php" title="">Special report</a></li>
<ul><li><a href="index.php" title="">Sports</a></li>
<ul><li><a href="index.php" title="">Tanzania</a></li>
<ul><li><a href="index.php" title="">World</a></li></ul>
</li>
<li><a href="index.php" title="">Links</a>
<ul><li><a href="index.php" title="">Add your Link</a></li>
<ul><li><a href="index.php" title="">Edit Link</a></li>
<ul><li><a href="index.php" title="">Help to Links</a></li>
<ul><li><a href="index.php" title="">Link to us</a></li>
<ul><li><a href="index.php" title="">Links Directory</a></li></ul>
</li>
<li><a href="index.php" title="">Business</a></li>

Nogen der kan hjælpe med at løse det, for hvordan tjekker jeg lige at der ikke er flere med det samme nummer i menu_side_id og så sætter en </ul> istedet for at den sætter den efter hver gang.
Avatar billede tanzaweb Nybegynder
08. marts 2006 - 14:37 #2
Lukker spørgsmål.
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