Avatar billede clus Nybegynder
06. oktober 2006 - 20:46 Der er 6 kommentarer og
1 løsning

databaseudtræk ud i en tabel med 3 kolonner, men hvordan?

Hej eksperter...

Jeg er ved at lave en forhandlerliste der er baseret på en mysql database, her har jeg navn, adresse, tlf, fax, email, webadresse som jeg ønsker præsenteret i en tabel i 3 kolonner hvor de så er sorteret efter postnummer. Jeg har fået lavet følgende indtil videre, men kan ikke lige gennemskue hvordan jeg får det ud i 4 kolonner uden at det er den samme der kommer 3 gange ved siden af hinanden (hvilket ikke er så genialt)... håber der er nogen der kan hjælpe mig.

koden er pt som følger - jeg modtager gerne andre gode råd hvis jeg har lavet noget uhensigsmæssigt da jeg er ganske grøn med det her php og mysql:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<?php

?>

<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <meta name="generator" content="Adobe GoLive" />
        <title>test</title>
        <link href="css/basic.css" type="text/css" rel="stylesheet" media="all" />
    </head>

    <body bgcolor="#ffffff">
   
   
    <br><br>
    <table border="1" align="center">
    <? include "connect.php";
    $query = "SELECT * FROM forhandler ORDER BY postnr";
    $result = mysql_query($query);
    while ($row = mysql_fetch_assoc($result)) {

    $kolonner = 3;
    $antal = 1;
   
    for ($rakke = 1;; $rakke++){
        if ($rakke>=($antal / $kolonner)+1)
        break;   
   
    echo"<tr>";
        for ($celle = 1;; $celle++){
        if ($celle>=$kolonner+1)
        break;
    echo"<td width='200' align='center'>";
    $tekst = $celle + (($rakke-1) * $kolonner) ;
   
  echo $row['navn'];
  echo "<br>";
  echo $row['adr1'];
  echo "<br>";
  echo $row['adr2'];
  echo "<br>";
  echo $row['postnr'];
  echo " ";
  echo $row['by'];
    //echo ". navn<br>Nørregade 47<br>9999 Navneløs<br>email<br>webside<br>Tlf<br>fax";
    echo"</td>";
        }
   
    echo"</tr>";
        }
        }
    ?>
    </table>
   
   
   
       
    </body>

</html>
Avatar billede Slettet bruger
06. oktober 2006 - 21:21 #1
Du kunne lave det ala:

<?PHP
    include "connect.php";
    $query = "SELECT * FROM forhandler ORDER BY postnr";
    $result = mysql_query($query);
    $i = 1;
    while ($row = mysql_fetch_assoc($result)) {
    if($i == "3") {
        echo "<tr>";
    }

    echo"<td width='200' align='center'>";
    $tekst = $celle + (($rakke-1) * $kolonner) ;
    echo $row['navn'];
    echo "<br>";
    echo $row['adr1'];
    echo "<br>";
    echo $row['adr2'];
    echo "<br>";
    echo $row['postnr'];
    echo $row['by'];
        echo"</td>";

    $i++;
    if($i == "3") {
        echo "</tr>";
        $i = 1;
    }

    }
?>
Avatar billede clus Nybegynder
07. oktober 2006 - 08:38 #2
min tabel kommer til at se noget sjov ud når jeg bruger den kode... de fleste steder er der 2 kolonner men flere steder er der så 4 eller 5 kolonner....

Hvad kan jeg gøre forkert ?
Avatar billede clus Nybegynder
07. oktober 2006 - 09:00 #3
En anden ting.. mine udtræk, der skriver den æ ø og å som mærkelige tegn og spiser noget af linierne når disse danske bogstaver indgør, men når jeg kigger i mysql db'en så ser det rigtigt ud... noget forslag?
Avatar billede clus Nybegynder
07. oktober 2006 - 09:10 #4
sorry.. jeg er her lige igen, det ser ud til at grunden til at den ikke altid lige holder sig til det ønskede antal kolonner skyldes at mine æ,ø,å og andre special tegn kommer til at se underlige ud og spiser noget af koden fx. kan jeg se at nogen af posterne slutter med td> hvilker jo så forklarer hvorfor den ikke holder kolonnetallet.... men hvordan undgår jeg problemet med tegn som æ,ø,å og fx é, det står som sagt rigtigt nok i mysql db'en....
Avatar billede zynzz Praktikant
07. oktober 2006 - 10:37 #5
Du husker disse tags ikke?:
<table>
</table>
Avatar billede Slettet bruger
07. oktober 2006 - 12:38 #6
Du kan prøve følgende:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
            <meta name="generator" content="Adobe GoLive" />
            <title>test</title>
            <link href="css/basic.css" type="text/css" rel="stylesheet" media="all" />
    </head>
    <body bgcolor="#ffffff">
    <br><br>
    <table border="1" align="center">
<?PHP

    include "connect.php";
    $query = "SELECT * FROM forhandler ORDER BY postnr";
    $result = mysql_query($query);
    $i = 1;
    while ($row = mysql_fetch_assoc($result)) {
    if($i == "3") {
        echo "<tr>";
    }

    echo"<td width='200' align='center'>";
    $tekst = $celle + (($rakke-1) * $kolonner) ;
    echo $row['navn'];
    echo "<br>";
    echo $row['adr1'];
    echo "<br>";
    echo $row['adr2'];
    echo "<br>";
    echo $row['postnr'];
    echo $row['by'];
        echo"</td>";

    $i++;
    if($i == "3") {
        echo "</tr>";
        $i = 1;
    }

    }
?> 
    </table>
    </body>

</html>
Avatar billede clus Nybegynder
07. oktober 2006 - 13:34 #7
takker...

det var charset=iso-8859-1, der gjorde det... havde table tags med.
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