[PHP] Tabel met 12 rijen, verdelen in 2 kolommen van 6

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008

  • DirectZ
  • Registratie: September 2002
  • Laatst online: 14-08-2024
Ik heb een tabel die met een rij gegevens terug komt.

Dus zo:
| 1 |
| 2 |
| 3 |
| 4 |

Nu wil ik het volgende bereiken:
| 1 | 2 |
| 3 | 4 |

Dus in plaats van 1 kolom 2 kolommen. Nu heb ik het volgende stuk code wat mij dus
bovengenoemd resultaat zou moeten brengen, maar dat doet het natuurlijk niet anders had ik hier
niet gepost. Ik zie even niet meer waar ik het moet zoeken. Misschien dat iemand mij kan
helpen...?

Het stuk code waar ik me op stukbijt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<? 
$cols = 2;
$i = $cols;
$j = 0;
              
while($obj3 = mysql_fetch_object($resultaat3)) {
echo "<table width=550 align=center >";
            
    if ($i == $cols) {
    echo "<TR>";
        $i = 0;  }

              
echo "<td valign=center><font class=koppen3>$obj2->pnummer&nbsp;&nbsp;</td>";
$spelers = str_replace("\n", "<br>", $obj3->partuurleden);    
echo "<td><table width=260><TR class=text><TD width=85 valign=top><b>Clubnaam:
</td><td><i>$obj3->clubnaam</i></b></td></TR><TR class=text><TD width=3 
valign=top>Namen:</td><td><i>$spelers</i></td></TR><TR class=text><TD 
valign=top>Clubkleuren:</td> <td><i>$obj3->clubkleuren</i></td></TR></table></td>";
               
        $j++;
    if ($j == $cols) {
      echo "</TR>";
      $j = 0; }

      $i++; 
    
      }
              
    echo "</table>"; 

?> 


Ik staar me helemaal blind. 8)

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Je opent de table elke keer in je while-loop, dat kan niet de bedoeling zijn. Ook snap ik niet waarom je zowel een $i als $j bijhoudt.
Je code kan sowieso stukken overzichtelijker door anders te indenten. Je boft, ik heb het voor je gedaan:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$cols = 2;
$i = 0;

echo '<table width="550" align="center">';
              
while($obj3 = mysql_fetch_object($resultaat3)) {
  if ($i % $cols == 0) {
    echo '<tr>';
  }
  $i++;

  $spelers = str_replace("\n", '<br>', $obj3->partuurleden);           
  echo '<td valign="center"><font class="koppen3">' . $obj2->pnummer . '&nbsp;&nbsp;</td>
   <td>
    <table width="260">
      <tr class="text"><td width="85" valign="top"><b>Clubnaam:</b></td><td><i>' . $obj3->clubnaam . '</i></td></tr>
      <tr class="text"><td width="3" valign="top">Namen:</td><td><i>' . $spelers . '</i></td></tr>
      <tr class="text"><td valign="top">Clubkleuren:</td><td><i>' . $obj3->clubkleuren .  '</i></td></tr>
     </table>
    </td>';
               
  if ($i % $cols == 0) {
    echo '</tr>';
  }
}
if($i % $cols != 0) {
  echo '</tr>';
}

echo '</table>';


% is de rest-na-deling (modulo) operator. Dat scheelt weer je variabelen op 0 te zetten.

[ Voor 153% gewijzigd door GlowMouse op 19-04-2006 00:19 ]


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
mis ik iets of doe je gigantisch moeilijk :?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
  $aantal = 10;
  $cols = 3;
?>
<table>
<?
  for ($i = 0; $i<$aantal;$i++) {
    //open tr
    echo ($i%$cols == 0)?"<tr>":"";

    //echo vars etc.
    echo "<td>$i</td>";
  }
?>
</table>

disclaimer: niet getest

[ Voor 124% gewijzigd door BasieP op 19-04-2006 00:26 ]

This message was sent on 100% recyclable electrons.


  • Psychokiller
  • Registratie: Oktober 2001
  • Niet online
Zoals hierboven lijkt me inderdaad. Met daarna als aanvulling ná de forloop een check of je rij ook afgesloten is, wat niet het geval zal zijn als aantal geen veelvoud van cols is :)

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
Psychokiller schreef op woensdag 19 april 2006 @ 00:15:
Zoals hierboven lijkt me inderdaad. Met daarna als aanvulling ná de forloop een check of je rij ook afgesloten is, wat niet het geval zal zijn als aantal geen veelvoud van cols is :)
</tr> is optioneel in html he ;)

This message was sent on 100% recyclable electrons.


  • GlowMouse
  • Registratie: November 2002
  • Niet online
GlowMouse, als je me code jat, doe het dan goed en zorg dat ie werkt
Hoewel ik bij het editen jouw code niet heb gezien, vraag ik me af waar mijn code de mist in zou gaan.

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
GlowMouse schreef op woensdag 19 april 2006 @ 00:24:
[...]

Hoewel ik bij het editen jouw code niet heb gezien, vraag ik me af waar mijn code de mist in zou gaan.
ah oke, hij leek er wel erg op net :)

je sluit tr's af als je iterator % aantalcols == 0

dus hey..
stel je hebt 3 kolommen, en je bent bij het vierde element (3 dus)

3 % 3 == 0 dus je opent een <tr>
dan poep je je <td> stuff uit
en dan sluit je de <tr> weer met een </tr>

vervolgens neem je de volgende waarde (vijfde element, getal 4)
deze komen buiten <tr>'s en nu valideerd je pagina niet meer

[ Voor 9% gewijzigd door BasieP op 19-04-2006 00:27 ]

This message was sent on 100% recyclable electrons.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Deze vraag is inmiddels al zo vaak voorbij gekomen dat ik alle mogelijke antwoorden wel kan dromen. DirectZ, wil je de volgende keer even de search gebruiken voordat je een topic opent? Dat had je in dit geval dit topic gescheeld. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.