[PHP/MYSQL] Resultaat in kolommen weergeven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo ik heb een query gemaakt voor een gallery, in het resultaat worden de thumbnails weergegeven, elke thumbnail komt in een tabel of gedeelte daarvan te staan, mijn wens is om een tabel te maken die bestaat uit drie kolommen en uit de benodigde rijen, hoe kan ik ervoor zorgen dat er ik drie thumbnails naast elkaar en zo verder naar beneden toe in rijen te zien krijg, ik heb op google en macromedia gekeken en gezocht maar "table", "column" en "query" levert veel resultaten op die niet hierover gaan.

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
33
34
35
36
37
38
39
<?php require_once('../Connections/agtereek.php'); ?>

<?php

mysql_select_db($database_agtereek, $agtereek);

$query_Gallery = "SELECT * FROM gallery";

$Gallery = mysql_query($query_Gallery, $agtereek) or die(mysql_error());

$row_Gallery = mysql_fetch_assoc($Gallery);

$totalRows_Gallery = mysql_num_rows($Gallery);

?>

<table width="200" border="0" cellspacing="0" cellpadding="0">

<?php do { ?>

  <tr>

    <td>

      [img]"<?php[/img]">

    </td>

  </tr>

<?php } while ($row_Gallery = mysql_fetch_assoc($Gallery)); ?>

</table>

<?php

mysql_free_result($Gallery);

?>


Dus mijn vraag luid, hoe krijg ik om de 3 kolommen een nieuwe rij?

[ Voor 14% gewijzigd door Verwijderd op 15-10-2004 17:41 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Door een counter te zetten, en deze per `do` op te hogen met één. Zodra de counter gelijk is aan 3 (of 2, als je bij nul begint) dan reset je de counter en maak je een volgende rij aan met html. Let goed op dat je de tabel netjes afsluit.

Edit: Pseudo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
counter=0
while(blaat)
{

// toon afbeelding
echo blaat;

// verhoog counter
counter++;

// check volgende rij
if(counter < max_columns) {
echo meuk;
reset counter
}

}


Let op dat je ná de while-loop even moet kijken wat de waarde is van de counter. Als dat niet 2 is, dan moet je een of twee lege td's aanmaken.

[ Voor 44% gewijzigd door Verwijderd op 15-10-2004 17:31 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
En waar moet dit precies staan want na de WHILE doet ie nix meer

Acties:
  • 0 Henk 'm!

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Beetje off-topic maar miss helpt het om je code een beetje op te schonen en een beetje beter neer te zetten. Heb je alleen maar meer profeit van en kan je er makkelijker wijs uit en andere ook als ze moeten helpen

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 16:28
Je kan het op meerdere manieren oplossen. Een manier is om plaatjes in cellen te zetten (met <td>-tags) en na 3 cellen een nieuwe rij aan te maken (met <tr>-tags). Je moet dan inderdaad rijen tellen zoals ivy ook al aangaf:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<table>
<tr>
<?php
$count = 0;
while($row = mysql_fetch_assoc($Gallery))
{
  if(++$count == 3)
  {
    // nieuwe rij beginnen
    echo '</tr><tr>';
    $count = 0;
  }

  // cel genereren
?>
  <td> 
    [img]"<?php[/img]"> 
  </td> 
<?php
}
?>
</tr>
</table>

Acties:
  • 0 Henk 'm!

Verwijderd

Dit kan iets netter opgelost worden met modulus

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Verwijderd schreef op 15 oktober 2004 @ 19:11:
Dit kan iets netter opgelost worden met modulus
Uiteindelijk doe je alsnog een increment-operatie en een controle tegen 3, of je dan af en toe de teller terug op 0 zet of via modulus doortelt maar in wezen dezelfde vergelijking doet... Dat maakt het imho weinig netter, alleen anders.

Acties:
  • 0 Henk 'm!

Verwijderd

ACM schreef op 15 oktober 2004 @ 19:30:
Uiteindelijk doe je alsnog een increment-operatie en een controle tegen 3, of je dan af en toe de teller terug op 0 zet of via modulus doortelt maar in wezen dezelfde vergelijking doet... Dat maakt het imho weinig netter, alleen anders.
Ik weet niet, ik vind dit wel netter:

PHP:
1
if (++$count % 3 == 0) echo "</tr><tr>";

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 16:28
Vind ik ook, maar ik wilde de modulus-operator even vermijden om het niet te ingewikkeld te maken.
Pagina: 1