Avatar billede askovdk Nybegynder
16. november 2010 - 21:28 Der er 9 kommentarer og
1 løsning

Udskriv fra database i række

Jeg er helt med på hvordan jeg skriver mine produkter du fra min database i en række ned af siden...

Men hvordan får jeg dem til at stå f.eks. 4 ved siden af hinanden, og derefter en række mere osv. osv.

F.eks som produkterne står her: http://www.wupti.com/Produkter/TV-HIFI/TV/Plasma/
Avatar billede webweaver Praktikant
16. november 2010 - 21:56 #1
Kan laves således,

Du har en variabel uden for din while løkke.
number = 0;

Inde i while løkken har du det sædvanlige kode..
Og så har du også $number++; og

if (($number % 4) == 0) {
   
echo "</tr>\n\n";
echo "<tr>\n";
   
}

Det vil gøre, at der kommer til at være 4 ved siden af hinanden, hvor efter den skifter række. Det er lavet i en tabel i det her eksempel.
Avatar billede webweaver Praktikant
16. november 2010 - 22:01 #2
Og lige et par tastefejl.

number = 0; skal selvfølgelig være $number = 0;

Og så udskriver den 3 ved siden af hinanden, og ikke 4.
Der ændrer du selvfølgelig bare selv tallet til hvad du skal bruge :-)

Sig til, hvis du har problemer med at få det til at virke.
Avatar billede askovdk Nybegynder
16. november 2010 - 22:05 #3
$number = "0";
$q = mysql_query("SELECT * FROM produkter gruppe id = '20");
while($row = mysql_fetch_array($q)) {

 

$id = $row["id"];
$titel = $row["titel"];
$pris = $row["pris"];


if (($number % 4) == 0) {


?????


} } ?>


Jeg er ikke helt med hvordan jeg får min tabel til at virke ?
Avatar billede webweaver Praktikant
16. november 2010 - 22:17 #4
Okay, her er et komplet eksempel så :-)

<table>
<tr>

<?php

// Database connection og mysql_query("SELECT....

$number = 0;

while ($data = mysql_fetch_array($query)) {
                           
$var1 = $data['var1'];
$var2 = $data['var2'];
$number++;
                           
if (($number % 4) == 0) {
                       
echo "</tr>\n\n";
echo "<tr>\n";
                                               
}
                   
echo "<td>" . $var1 . "</td>";
                                           
}

</tr>
                               
</table>


Gav det et bedre overblik? Så når der er 3 på række, indsætter den en </tr><tr>, som betyder en ny række i en HTML tabel, og voilá. :)
Avatar billede askovdk Nybegynder
16. november 2010 - 22:27 #5
Det virker næsten

Den første række er der 3 felter

og de næste derefter 4 felter
Avatar billede webweaver Praktikant
16. november 2010 - 22:56 #6
Prøv at skifte 0 til -1 :)
Avatar billede askovdk Nybegynder
17. november 2010 - 09:42 #7
Takker igen :-) Jep så virker det, smid svar :-)
Avatar billede webweaver Praktikant
17. november 2010 - 09:49 #8
Det gør det nemlig :-)

Tak for point.
Avatar billede askovdk Nybegynder
17. november 2010 - 14:14 #9
Hmm der er en lille fejl der i...

Når jeg ændre den til -1 så virker det fint, men i kildekoden starter den med at lave:

</tr>

<tr>

Efter <table>

Det giver self. fejl i Validatoren W3....

Den skulle jo ikke gerne starte med at lave </tr>

<tr>

?
Avatar billede webweaver Praktikant
17. november 2010 - 14:36 #10
Det kan jeg godt se. Det er klart nok.

Det fikses ved at tilføje en lille ekstra if sætning.

if ($number != 0) {
                           
if (($number % 3) == 0) {
                   
echo "</tr>\n\n";
echo "<tr>\n";
                       
}
                               
}
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