Avatar billede rema Nybegynder
20. oktober 2005 - 12:09 Der er 10 kommentarer og
1 løsning

lav en table med 2 columns og x antal rows - fra mysql

Hej,

Jeg har dette men det virker ikke rigtigt.

<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="almtekst1_rod_stor"><?

print "<table><tr><td>";
        while($row10 = mysql_fetch_array($result10)){
print "<table cellpadding='3' cellspacing='0'><tr>";
            if($row10){
                for($i=0; $i<2; $i++){
                    print "<td align='left' width='450'><a href='$row10[intid]' border='0' class='almtekst1_rod_stor'>$row10[vare_navn]</a></td>";
                    print "</tr><tr>";
                    print "<td align='left' width='450'><a href='$row10[intid]' border='0' class='almtekst1_rod_stor'>$row10[vare_nr]</a></td>";
                    $row10 = mysql_fetch_array($result10);
            } print "</table><br>";
        } 
    }
print "</td></tr></table>";
?></td>
  </tr>
</table>

Håber at det er til at finde ud af;)
Avatar billede ldanielsen Nybegynder
20. oktober 2005 - 12:14 #1
Nu er jeg ikke hård til php, men se her:

var $counter = 0;
print "<table>";
while (<noget>){
if ($counter % 2 == 0) print "<tr>";
print "<td>indhold</td>";
$counter++
if ($counter % 2 == 0) print "</tr>";
}
if ($counter % 2 != 0) print "<td>(tom)</td></tr>";
print "</table>";
Avatar billede ldanielsen Nybegynder
20. oktober 2005 - 12:16 #2
% er modulus, des en operator der giver resten ved division af operand 2 i operand1.

Med andre ord: Hvis $counter er et lige tal er $counter % 2 = 0, ellers er det 1

Kan du se det?
Avatar billede rema Nybegynder
20. oktober 2005 - 12:25 #3
Det virker ikke, fejl i første linje: Parse error: parse error, unexpected T_VAR
Avatar billede rema Nybegynder
20. oktober 2005 - 12:32 #4
meningen er at det skal se sådan ud:

-----------------------------------------------
|varenavn 1            | varenavn 2          |
-----------------------------------------------
|varenr 1              | varenr 2            |
-----------------------------------------------
|varebillede 1        | varebillede 2        |
-----------------------------------------------

og der ud af..
Avatar billede ldanielsen Nybegynder
20. oktober 2005 - 13:17 #5
Som sagt er jeg ikke skrap til php, så du må selv sætte de ; jeg glemmer :o)

Men det havde jeg ikke set, at det skulle vende sådan.

Her er det forenklet, jeg har sat border=1 så man kan se hvad der sker (og jeg ved ikke om det hedder vare_billede

<table border=1>
<tr>
<?
while($row10 = mysql_fetch_array($result10)){
print "<td><table border=1>";
print "<tr><td><a href='$row10[intid]'>$row10[vare_navn]</a></td></tr>";
print "<tr><td><a href='$row10[intid]'>$row10[vare_nr]</a></td></tr>";
print "<tr><td><img src='$row10[vare_billede]'></td></tr>";
print "</table></td>";
}
  </tr>
</table>
Avatar billede rema Nybegynder
20. oktober 2005 - 13:29 #6
Så er den der næsten. Den skal så bare kun skrive 2 columns og så skal den starte på en ny række;)
Avatar billede ldanielsen Nybegynder
20. oktober 2005 - 13:42 #7
Sådan?:

-----------------------------------------------
|varenavn 1            | varenavn 2          |
-----------------------------------------------
|varenr 1              | varenr 2            |
-----------------------------------------------
|varebillede 1        | varebillede 2        |
-----------------------------------------------
-----------------------------------------------
|varenavn 3            | varenavn 4          |
-----------------------------------------------
|varenr 3              | varenr 4            |
-----------------------------------------------
|varebillede 3        | varebillede 4        |
-----------------------------------------------


Så strikker jeg det sammen med min første løsning:


<?
$counter = 0;
?>
<table border=1>
<?
while($row10 = mysql_fetch_array($result10)){
if ($counter % 2 == 0) print "<tr>";
print "<td><table border=1>";
print "<tr><td><a href='$row10[intid]'>$row10[vare_navn]</a></td></tr>";
print "<tr><td><a href='$row10[intid]'>$row10[vare_nr]</a></td></tr>";
print "<tr><td><img src='$row10[vare_billede]'></td></tr>";
print "</table></td>";
$counter++;
if ($counter % 2 == 0) print "</tr>";
}
if ($counter % 2 != 0) print "<td>(tom)</td></tr>";
</table>
Avatar billede ldanielsen Nybegynder
20. oktober 2005 - 13:43 #8
Fandt lige et par fejl selv :o)

<table border=1>
<?
$counter = 0;
while($row10 = mysql_fetch_array($result10)){
if ($counter % 2 == 0) print "<tr>";
print "<td><table border=1>";
print "<tr><td><a href='$row10[intid]'>$row10[vare_navn]</a></td></tr>";
print "<tr><td><a href='$row10[intid]'>$row10[vare_nr]</a></td></tr>";
print "<tr><td><img src='$row10[vare_billede]'></td></tr>";
print "</table></td>";
$counter++;
if ($counter % 2 == 0) print "</tr>";
}
if ($counter % 2 != 0) print "<td>(tom)</td></tr>";
?>
</table>
Avatar billede rema Nybegynder
20. oktober 2005 - 13:54 #9
fantastisk;) så virker det. Mange tak for den hurtige hjælp.

Lægger du et svar! Så du kan få point
Avatar billede ldanielsen Nybegynder
20. oktober 2005 - 14:11 #10
OK.

Det er ret bekvemt det der med modulus, ikke?

Se her, man kan sætte $antalcols til det man vil:

<table>
<?

$counter = 0;
$antalcols = 4;

while (<noget>){
  if ($counter % $antalcols == 0) print "<tr>";
  print "<td>indhold</td>";
  $counter++
  if ($counter % $antalcols == 0) print "</tr>";
  }

while ($counter % $antalcols > 0){
  print "<td>(tom)</td>";
  $counter++;
  }

print "</tr>";

?>
</table>
Avatar billede rema Nybegynder
20. oktober 2005 - 14:32 #11
ja.. det må man sige;)
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