Avatar billede human Nybegynder
02. november 2006 - 17:04 Der er 11 kommentarer og
1 løsning

måneder bliver ikke udskrevet

En fra exp.dk hjalp mig med dette script for noget tid siden

<?php
$sql2 = "
SELECT month(date) AS m, year(date) AS y
FROM news
GROUP BY y, m
ORDER BY y ASC, m ASC";
$result2 = mysql_query($sql2) or die(mysql_error());

$monthName = array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December");

$row = mysql_fetch_assoc($result2);
$year = $row["y"];
$month = $row["m"];
print "<a href='http://techcity.dk/?year=$year&month=$month'>" . $monthName[$month-1] . " $year</a>";

while ($row = mysql_fetch_assoc($result))
{
    $year2 = $row["y"];
    $month2 = $row["m"];

    while ($year2 != $year || $month2 != month)
    {
        print $monthName[$month-1] . " $year<br />";

        $month++;
        if ($month == 12)
        {
            $month = 0;
            $year++;
        }
    }

  print "<a href='http://techcity.dk/?year=$year&month=$month'>" . $monthName[$month-1] . " $year</a><br>";
}
?>

Men det virker ikke efter hensigten. Hver gang der kommer en ny måned, skal den nye måned udskrives. Lige nu udskriver den kun Oktober 2006. Men den burde også udskrive November 2006. Hvis tabellen news ikke indeholder nogen rækker som er indtastet i November 2006, så skal November 2006 stadig udskives, dog ikke som et link.
Avatar billede jakobdo Ekspert
02. november 2006 - 18:27 #1
Kan du ikke prøve at smide noget data, så vi kan se hvad du får ud fra din sql her: SELECT month(date) AS m, year(date) AS y FROM news GROUP BY y, m ORDER BY y ASC, m ASC
Avatar billede human Nybegynder
02. november 2006 - 18:32 #2
Ikke helt sikker på hvad du mener. Udskriver jeg $result2 får jeg "Resource id #4"

scriptet som det står ovenfor får jeg Oktober 2006.
Avatar billede jakobdo Ekspert
02. november 2006 - 18:33 #3
Det jeg tænker på, hvad indeholder m og y?
Avatar billede human Nybegynder
02. november 2006 - 18:35 #4
y 2006 og m 10
Avatar billede jakobdo Ekspert
02. november 2006 - 18:41 #5
Jeg tror ikke jeg kan løse den uden at sidde men koden foran mig, så springer fra på denne.
Avatar billede human Nybegynder
02. november 2006 - 18:46 #6
Okay. Det der oppe er ellers hele koden. Men tak fordi du prøvede :)
Avatar billede jakobdo Ekspert
02. november 2006 - 18:48 #7
Jeg mener også at have snablen nede i tabellerne!
Hvis du evt. kan smide et dump at tabellen news, så vil jeg gerne give det et forsøg.
Avatar billede human Nybegynder
02. november 2006 - 18:52 #8
Nåhh!

-- Table structure for table `news`
--

CREATE TABLE `news` (
  `id` tinyint(4) NOT NULL auto_increment,
  `author` varchar(20) NOT NULL default '',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `headline` varchar(100) NOT NULL default '',
  `text` longtext NOT NULL,
  `cat` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;

--
-- Dumping data for table `news`
--

INSERT INTO `news` (`id`, `author`, `date`, `headline`, `text`, `cat`) VALUES
(2, 'Michael', '2006-10-04 00:10:01', 'Test1', 'tester\r\n\r\ntest', 'test'),
(3, 'Michael', '2006-11-01 14:20:51', 'hej', 'teksrfeferfer f\r\nfre\r\nfr\r\n\r\nfre\r\n', 'hejhej');
Avatar billede jakobdo Ekspert
02. november 2006 - 20:01 #9
Du bruger disse 2 navne: $result og $result2
Hvor er $result henne?
Du bruger den her: while ($row = mysql_fetch_assoc($result))
Avatar billede human Nybegynder
02. november 2006 - 20:13 #10
($row = mysql_fetch_assoc($result))
ændret til result2.

Hvis man kører den efter result er rettet sker der noget sjovt. Den bliver ved med at skrive måneder ud i det uendelige.
Avatar billede jakobdo Ekspert
02. november 2006 - 20:23 #11
Ja, det var også hvad jeg lagde mærke til...
Avatar billede human Nybegynder
12. november 2006 - 23:05 #12
lukket
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