Avatar billede dingkee Nybegynder
29. december 2006 - 19:26 Der er 15 kommentarer

Katalog oversigt

Hej,

Jeg skal lave en side, som er en liste over forskellige produkter, den skal gerne bygges op sådan her:

Kollektionsnummer

Produktnummer    Produktnummer    Produktnummer
Billed                    Billed                    Billed
Info                      Info                      Info

Så skal den fortsætte sådan med alle produkterne i kollektionen, og når der ikke er flere skal den fortsætte til den næste...

Jeg kan godt finde ud af at trække alle informationerne ud i en lang række, men kan ikke lige finde ud af det her:

At der kun kommer kollektionsnummer når der ikke er flere produkter i den forrige kollektion...
Og sætte dem op så der kommer 3 ved siden af hinanden...

Håber at der er nogen der kan hjælpe :)
Avatar billede windcape Praktikant
29. december 2006 - 19:34 #1
Det er temmeligt svært at give et konkret eksempel uden din nuværende kode, og/eller SQL.
Avatar billede dingkee Nybegynder
29. december 2006 - 19:48 #2
Her kommer lidt kode :)

<div id="liste">
                    <?PHP
                    $sql1 = mysql_query("SELECT * FROM produkter");
                        while ($r1 = mysql_fetch_array($sql1)) {
                        echo"
                            <span class=\"red\">" . $r1[navn] . "</span><br/>
                            <img src=\"images/" . $r1[billed] . ".jpg\" alt=\"\" /><br/>
                            " . $r1[tekst] . "<br/>
                            <br/>
                        ";
                      }
                    ?>
                </div>

Kollektionsnummeret er nok lidt svære, det kommer fra en kategori der hedder: kategori
og kollonen navnet står i er navn :)

Måden produktet finder ud af hvilken kollektion den hører under er via et kollone der hedder uid

Håber det hjælper lidt
Avatar billede windcape Praktikant
29. december 2006 - 19:55 #3
"SELECT *" hjælper overhovedet ikke... Jeg er ikke gud, så jeg kender altså ikke din database opbygning.

Det eneste jeg kan se nu at noget rigtig dårligt skrevet PHP, som vil producerer en række E_NOTICE, på en server med ordenlig error_reporting.

Jeg kan ikke gøre særlig meget andet en at sige du skal bruge Modulus fra http://se.php.net/manual/en/language.operators.arithmetic.php
Avatar billede dingkee Nybegynder
29. december 2006 - 19:59 #4
Hvad er det så du mangler??

Hvad mener du med det her:
Det eneste jeg kan se nu at noget rigtig dårligt skrevet PHP, som vil producerer en række E_NOTICE, på en server med ordenlig error_reporting.

Eller hvordan ville du så lave det???
Avatar billede windcape Praktikant
29. december 2006 - 20:02 #5
lav et SQL dump af din tabel-struktur :-)
Avatar billede dingkee Nybegynder
29. december 2006 - 20:05 #6
CREATE TABLE `produkter` (
  `id` int(10) NOT NULL auto_increment,
  `navn` varchar(30) NOT NULL default '',
  `tekst` text NOT NULL,
  `pris` int(10) NOT NULL default '0',
  `billed` varchar(30) NOT NULL default '0',
  `f1n` varchar(30) NOT NULL default '',
  `f1b` varchar(30) NOT NULL default '',
  `f2n` varchar(30) NOT NULL default '',
  `f2b` varchar(30) NOT NULL default '',
  `f3n` varchar(30) NOT NULL default '',
  `f3b` varchar(30) NOT NULL default '',
  `f4n` varchar(30) NOT NULL default '',
  `f4b` varchar(30) NOT NULL default '',
  `s1` varchar(30) NOT NULL default '',
  `s2` varchar(30) NOT NULL default '',
  `s3` varchar(30) NOT NULL default '',
  `s4` varchar(30) NOT NULL default '',
  `u_kat` int(10) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=64 ;

CREATE TABLE `kategori` (
  `id` int(10) NOT NULL auto_increment,
  `kat` varchar(100) NOT NULL default '',
  `nyhedon` varchar(10) NOT NULL default '',
  `start` int(5) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=23 ;
Avatar billede windcape Praktikant
29. december 2006 - 20:06 #7
hvilket felt er kollektionsnummer ?
Avatar billede dingkee Nybegynder
29. december 2006 - 20:50 #8
det er den der hedder kat
Avatar billede dingkee Nybegynder
30. december 2006 - 14:51 #9
Jeg har faktisk fundet ud af det hele... Det eneste jeg mangler det er at når den har kørt løkken 3 gange at den så skal fortsætte til næste linie...

Kode eksempel:

<table>
<tr>
<td>Nr1</td>
<td>Nr2</td>
<td>Nr3</td>
</tr>
osv...

Hvordan får jeg tilføjet at efter den 3, skal den indsætte et </tr><tr> ???
Avatar billede windcape Praktikant
30. december 2006 - 17:21 #10
Ved at bruge modolus :-)

$i = 1;
while($r1 = mysql_fetch_assoc($sql1)) {
    if($i%3 == 0) { echo '<tr>'; }
    ..... dine td elementer ....
    if($i%3 == 0) { echo '</tr>'; }
    $i++;
}
Avatar billede dingkee Nybegynder
30. december 2006 - 21:54 #11
Det virker ikke helt :( Har gjort sådan her:

                            $sql2 = mysql_query("SELECT * FROM produkter WHERE u_kat = '" . $r1[id] . "'");
                                $i = 1;
                                while ($r2 = mysql_fetch_array($sql2)) {
                                   if($i%3 == 0) { echo '<tr>'; }
                                echo"
                                    " . $r2[navn] . "<br/>
                                    <img src=\"images/" . $r2[billed] . ".jpg\" alt=\"\" /><br/>
                                    " . $r2[tekst] . "<br/>
                                    <br/>
                                ";
                                if($i%3 == 0) { echo '</tr>'; }
                                $i++;
                                }
Avatar billede windcape Praktikant
31. december 2006 - 01:18 #12
ja, det er meget fint... men du bliver jo nød til at fortælle mig hvilken del der ikke virker, (f.eks. ved at poste dit html output), jeg kan jo ikke rette en fejl jeg ikke kender.
Avatar billede dingkee Nybegynder
31. december 2006 - 07:32 #13
Det virkede slet ikke... der kom intet frem på siden overhovedet...

Har lavet noget der virker:
$sql1 = mysql_query("SELECT * FROM kategori");
                        while ($r1 = mysql_fetch_array($sql1)) {
                        echo"
                            <span class=\"red\">" . $r1[kat] . "</span><br/>
                            <table>
                        ";
                            $sql2 = mysql_query("SELECT * FROM produkter WHERE u_kat = '" . $r1[id] . "'");
                                $i = 1;
                                while ($r2 = mysql_fetch_array($sql2)) {
                                if ($i == "1")
                                echo"
                                    <tr><td>
                                    " . $r2[navn] . "<br/>
                                    <img src=\"images/" . $r2[billed] . ".jpg\" alt=\"\" /><br/>
                                    " . $r2[tekst] . "<br/>
                                    </td>
                                ";
                                if ($i == "2")
                                echo"
                                    <td>
                                    " . $r2[navn] . "<br/>
                                    <img src=\"images/" . $r2[billed] . ".jpg\" alt=\"\" /><br/>
                                    " . $r2[tekst] . "<br/>
                                    </td>
                                ";
                                if ($i == "3")
                                echo"
                                    <td>
                                    " . $r2[navn] . "<br/>
                                    <img src=\"images/" . $r2[billed] . ".jpg\" alt=\"\" /><br/>
                                    " . $r2[tekst] . "<br/>
                                    </td></tr>
                                ";
                                $i++;
                            }
                        echo"</table><br />";
                      }

Men kunne da være bedre hvis jeg fik noget der ikke fyldte så meget :)
Avatar billede dingkee Nybegynder
31. december 2006 - 07:34 #14
Og det jeg har lavet virker kun hvis der er 3 produkter per kategori, så skulle gerne have det til at virke på din måde
Avatar billede windcape Praktikant
31. december 2006 - 18:00 #15
"Det virkede slet ikke... der kom intet frem på siden overhovedet..."

Hvis du med det mener at der SLET IKKE være NOGET SOM HELST output (heller ikke i 'view-source'), så har du jo bare en syntaxfejl, og din server har ingen error-reporting.

Hvis du derimod har indhold i vis-kilde, så post da dette :-) ellers kan jeg ikke hjælpe.
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

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging