Avatar billede oldnick Nybegynder
11. juni 2006 - 17:21 Der er 10 kommentarer og
1 løsning

Max 3 felter og så ny div?

Hej :)

Det kan måske lyde lidt snørklet i overskriften. Men kan jeg styr at jeg henter eks. 3 fields fra min db og sætter dem ind i en div og derefter henter de næste 3 fields ect. ect.?

Her er min php som henter fra db:

<?php
include_once 'db.inc.php';
$result = @mysql_query('SELECT * FROM kalender');
if(!$result) {
exit('<p>Error preforming query:' . mysql_error() . '</p>');
}
while ($row = mysql_fetch_array($result)) {
$id        = $row['id'];
$head    = $row['head'];
$content    = $row['content'];
   
echo     '<h2>' . $row['head'] . '</h2>
    <p>' . $row['content'] . '</p>';
}
?>

Jeg kunne forstille mig at der skulle noget tæller værk ind men kan ikke helt dreje hvor?

/Mads
Avatar billede nielle Nybegynder
11. juni 2006 - 17:43 #1
Et bud:

<?php
include_once 'db.inc.php';
$result = @mysql_query('SELECT * FROM kalender');
if (!$result)
{
    exit('<p>Error preforming query:' . mysql_error() . '</p>');
}

$counter = 0;
while ($row = mysql_fetch_array($result))
{
    if ($counter % 3 == 0)
    {
        if ($counter != 0) echo "</div>";
        echo "<div>";
    }
    $counter++;

    $id = $row['id'];
    $head = $row['head'];
    $content = $row['content'];
   
    echo '<h2>' . $row['head'] . '</h2><p>' . $row['content'] . '</p>';
}
echo "</div>";
?>
Avatar billede oldnick Nybegynder
11. juni 2006 - 17:49 #2
Det ser ikke ud til at virke. Den laver kun en div med alle felterne. Jeg kan heller ikke helt forstår hvad koden skulle gør kan du give en beskrivelse af hvad du har tænkt, så kan det være jeg også kan sætte hjernen lidt i blød. :) hvad betyder % i php??
Avatar billede nielle Nybegynder
11. juni 2006 - 17:52 #3
" % 3" betyder "resten ved en division med 3". Når $counter hele tiden tæller op:

0 1 2 3 4 5 6 7 8 9 10 ...

- vil $counter % 3 forløbe sådan:

0 1 2 0 1 2 0 1 2 0 1 ...
Avatar billede nielle Nybegynder
11. juni 2006 - 17:53 #4
Koden skulle gerne starte en ny div hver eneste gang at værdien 0 kommer igen.
Avatar billede nielle Nybegynder
11. juni 2006 - 17:56 #5
Det kan yænkes at det virker bedere ved at ændre:

if ($counter % 3 == 0)

- til:

if (($counter % 3) == 0)
Avatar billede oldnick Nybegynder
11. juni 2006 - 17:56 #6
Ok, det gør den ikke du kan se min test.php her: http://kampler.dk/hanne/test.php
Avatar billede oldnick Nybegynder
11. juni 2006 - 17:57 #7
prøver lige det...
Avatar billede oldnick Nybegynder
11. juni 2006 - 17:59 #8
Sorry, det virker jeg havde bare nogle div som roddet lidt rundt... :) smid et svar
Avatar billede oldnick Nybegynder
11. juni 2006 - 18:03 #9
Bare for en god ordens skyld og så andre kan bruge det, så kommer hele test.php her:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.test1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;
    height: 300px;
    width: 200px;
    overflow:hidden;
    float:left;
    border:#000000 solid 1px;
}
-->
</style>
</head>

<body>
<?php
include_once 'db.inc.php';
$result = @mysql_query('SELECT * FROM kalender');
if (!$result)
{
    exit('<p>Error preforming query:' . mysql_error() . '</p>');
}

$counter = 0;
while ($row = mysql_fetch_array($result))
{
    if (($counter % 3) == 0)
    {
        if ($counter != 0) echo "</div>";
        echo '<div class="test1">';
    }
    $counter++;

    $id = $row['id'];
    $head = $row['head'];
    $content = $row['content'];
 
    echo '<h2>' . $row['head'] . '</h2><p>' . $row['content'] . '</p>';
}
echo "</div>";
?>
</body>
</html>
Avatar billede nielle Nybegynder
11. juni 2006 - 18:04 #10
Jeg skulle netop til at kommentere det ;^)

<?php
include_once 'db.inc.php';
$result = @mysql_query('SELECT * FROM kalender');
if (!$result)
{
    exit('<p>Error preforming query:' . mysql_error() . '</p>');
}

$counter = 0;
while ($row = mysql_fetch_array($result))
{
    if ($counter % 3 == 0)
    {
        if ($counter != 0) echo "</div>\n";
        echo "<div>\n";
    }
    $counter++;

    $id = $row['id'];
    $head = $row['head'];
    $content = $row['content'];
   
    echo "<h2>" . $row['head'] . "</h2>\n<p>" . $row['content'] . "</p>\";
}
echo "</div>\n";
?>
Avatar billede nielle Nybegynder
11. juni 2006 - 18:04 #11
... og et svar :^)
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