[Php] gegevens weergeven in 2 kolommen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met een lijst van gegevens (gesorteerd), zou deze nu graag in 2 kolommen weergeven,
maar nu heb ik:

1 naam1 2 naam2
3 naam3 4 naam4

en ik zou graag de volgende indeling hebben
1 naam1 3 naam3
2 naam2 4 naam4

Hoe is dit mogelijk in html/php?

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Goed nadenken?

Je kan bv data ophalen en dan om en om wegschrijven naar 2 arrays welke je weer verwerkt tot een tabel.

Wat heb je al zelf gedaan? Heb je al gezocht? Iets meer inzet wordt wel verwacht.

Acties:
  • 0 Henk 'm!

  • steffex
  • Registratie: Augustus 2003
  • Laatst online: 12-08 00:24
HTML:
1
2
3
4
5
6
7
8
9
10
<table>
<tr>
<td>1</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>4</td>
</tr>
</table>


hoe zou jij dit in php doen?

[ Voor 3% gewijzigd door steffex op 16-09-2008 17:04 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm ja, maar ik dacht dat er een eenvoudige functie al voor bestond, die ik gewoon even niet vond. 2 arrays lijkt me ook wat raar.

Ik had al zitten denken:
de gegevens in de 2de kolom zijn altijd index eerste kolom + (totaal aantal gegevens / 2)

Bv:
1 6 (1+5)
2 7 (2+5)
3 8 (3+5)
4 9 (4+5)
5 10 (5+5)

Of denk ik verkeerd?

code:
1
2
3
4
5
6
for($x = 0; $x < count($array)/2; $x++) {
     echo '<tr>';
     echo '<td>'.$array[$x].'</td>';
     echo '<td>'.$array[$x+count($array)/2].'</td>';
     echo '</tr>';
}

[ Voor 21% gewijzigd door Verwijderd op 16-09-2008 17:07 ]


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Wat als het aantal gegevens oneven is?

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Test het en je weet het zeker ;)

Voor in de toekomst: zou je Programming Beleid - De Quickstart eens door willen lezen. Je dumpt nu een vraag en hoopt dat je van ons een werkende oplossing krijgt en dat is niet de bedoeling. Ondanks wat sommmige mensen denken is GoT niet bedoeld als domme helpdesk. Ga er gewoon zelf mee aan de slag en mocht je er dan niet uitkomen geef dan in je post aan wat je nu allemaal al zelf hebt geprobeerd en wat daar dan niet mee lukte.

PHP heeft niet voor *alles* een functie. Bij programmeren moet je zo af en toe ook nog zelf even nadenken :P

[ Voor 6% gewijzigd door Creepy op 16-09-2008 17:27 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
GlowMouse schreef op dinsdag 16 september 2008 @ 17:24:
Wat als het aantal gegevens oneven is?
Goeie opmerking:

1 6
2 7
3 8
4 9
5

ceil(aantalgegevens / 2) = 5
Dan klopt het, denk ik?

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Hm, een tabel lijkt me toch een beetje gek hier. Bijvoorbeeld het selecteren gaat dan gelijk anders/mis. Helaas werkt het volgende nu alleen goed in FF:
HTML:
1
2
3
4
5
6
7
8
<div style="column-count:2;-moz-column-count:2">
<ol
  ><li>naam1</li
  ><li>naam2</li
  ><li>naam3</li
  ><li>naam4</li
></ol>
</div>

Zoek je naar css multi-column list, dan vind je bijv. deze methode:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<style type="text/css">
ol { margin: 0 0 1em 2em; padding: 0; }
ol li { line-height: 1.2em; margin: 0; padding: 0; }
ol li.column1 { margin-left: 0em; }
ol li.column2 { margin-left: 10em; }
</style>
<ol
  ><li class="column1">naam1</li
  ><li class="column1">naam2</li
  ><li class="column2" style="margin-top:-2.4em">naam3</li
  ><li class="column2">naam4</li
></ol>

Een for-loopje, 3 verschillende gevallen dus. Selecteren werkt alsnog niet helemaal goed in IE. Vooral de vraag wat je doet als de naam echt te lang wordt is interessant. Wellicht is de volgende table-hack dan toch het makkelijkst:
HTML:
1
2
3
4
5
6
7
8
<table><tr><td>
<ol
  ><li>naam1</li
  ><li>naam2</li
></ol></td><td><ol start=3
  ><li>naam3</li
  ><li>naam4</li
></ol></td></tr></table>

Een for-loopje, 2 gevallen, automatische nummering & breedte, selecteren werkt. Alternatief kunnen ook dit soort dingen voor het krijgen van twee kolommen.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

TS wil tabulaire data tonen, dat kan je het beste doen in... een tabel.
Waarom je er een ol (en zelfs een ol in een table) bijhaalt is mij een raadsel.

Tel het aantal rijen, hou even/oneven in de gaten, en output het.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • pedorus
  • Registratie: Januari 2008
  • Niet online
TeeDee schreef op dinsdag 16 september 2008 @ 23:45:
TS wil tabulaire data tonen, dat kan je het beste doen in... een tabel.
Waarom je er een ol (en zelfs een ol in een table) bijhaalt is mij een raadsel.
Huh? Even kijken:
Verwijderd schreef op dinsdag 16 september 2008 @ 16:58:
Ik zit met een lijst van gegevens (gesorteerd), zou deze nu graag in 2 kolommen weergeven,
lijst!=tabel

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Verwijderd

Topicstarter
osorkon! schreef op dinsdag 16 september 2008 @ 17:44:
[...]

Goeie opmerking:

1 6
2 7
3 8
4 9
5

ceil(aantalgegevens / 2) = 5
Dan klopt het, denk ik?
Dit was inderdaad de oplossing, heb het wel beetje moeten aanpassen voor het in samenwerking met men smarty templates zou werken. :)
Pagina: 1