resultaten over meerdere pagina's plaatsen

Pagina: 1
Acties:
  • 583 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • chaterz
  • Registratie: Mei 2010
  • Laatst online: 05-08-2023
ik heb een volgend stuk code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php 
$userquery = mysql_query("SELECT * FROM `gadgets` where `id` = '".$profile['id']."' OR `id` = '".$profile['id']."'"); 
while($data = mysql_fetch_array($userquery)){ 
if($user['id'] == $profile['id']) 
{ 
$delete = "<a href=\"javascript:frame_setup('Gadget Verwijderen',250,150,'ucp/deletegadget.uspx?deletegadget=".$data['time']."',false)\" style='border:0px;'><img src='http://chaterz.nl/images/delete.png' alt='' style='border:0px;'/></a>"; 
} 
$gadget=userById($data['id']); 
print "<div class='message' style='min-height:40px!important;'><div class='msghead'><span style='font-weight:bold;'>".$data['title']."</span><span><a href=\"javascript:frame_setup('Gadget Toevoegen',715,415,'ucp/gadgets.uspx?title=".$data['title']."&code=".$data['code']."',false)\" style='border:0px;'><img src='http://chaterz.nl/images/add.png' alt='' style='border:0px;'/></a> $delete</span></div>".bb_encode($data['code'])."".$data['timestamp']."</div>"; 
} 
?> 

maar nu zou hij er 4 moeten posten en dat ik van onder krijg:

1 » 2 » 3 ect.

natuurlijk gebaseerd op de gadgets,

Hoe pak ik dat het makkelijkste aan?

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

Zoek eens op 'paging' ?

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • chaterz
  • Registratie: Mei 2010
  • Laatst online: 05-08-2023
ik kan geen geschikte vinden

Acties:
  • 0 Henk 'm!

  • gvdh
  • Registratie: December 2009
  • Laatst online: 18:19
Nog een tip dan: gebruik LIMIT in je query (info)

Acties:
  • 0 Henk 'm!

  • chaterz
  • Registratie: Mei 2010
  • Laatst online: 05-08-2023
ook geprobeert, maar daar kom ik niet verder mee

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

Als ik even snel kijk bij [google=php paging] staat er toch echt gigantisch veel code waarmee je dit op moet kunnen lossen. Daarmee zou het zelfs mij (zonder PHP ervaring) nog lukken ;)

Het idee is dus dat je per page de benodigde gegevens ophaalt (vandaar de LIMIT). Dan moet je verder dus bijhouden welke page je bent, welke page je naartoe wilt e.d. en op basis daarvan de resultaten tonen.

[ Voor 36% gewijzigd door Haan op 04-05-2010 09:33 ]

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • chaterz
  • Registratie: Mei 2010
  • Laatst online: 05-08-2023
ik heb nu:
PHP:
1
2
3
4
5
6
7
8
9
$userquery = mysql_query("SELECT * FROM `gadgets` where `id` = '".$profile['id']."' OR `id` = '".$profile['id']."' LIMIT 1,4");
while($data = mysql_fetch_array($userquery)){
if($user['id'] == $profile['id'])
{
$delete = "<a href=\"javascript:frame_setup('Gadget Verwijderen',250,150,'ucp/deletegadget.uspx?deletegadget=".$data['time']."',false)\" style='border:0px;'><img src='http://chaterz.nl/images/delete.png' alt='' style='border:0px;'/></a>";
}
$gadget=userById($data['id']);
print "<div class='message' style='min-height:40px!important;'><div class='msghead'><span style='font-weight:bold;'>".$data['title']."</span><span><a href=\"javascript:frame_setup('Gadget Toevoegen',715,415,'ucp/gadgets.uspx?title=".$data['title']."&code=".$data['code']."',false)\" style='border:0px;'><img src='http://chaterz.nl/images/add.png' alt='' style='border:0px;'/></a> $delete</span></div>".bb_encode($data['code'])."".$data['timestamp']."</div>";
}


nu toont hij 4 "gadgets"
maar nou ben ik er nog niet achter hoe ik die knopjes krijg

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

offtopic:
waarom staat er id='profile[id]' OR id='profile[id]' in je WHERE clausule, dat is dubbel?

Dan heb je nu het resultaat voor de eerst pagina, het totaal pagina's weet je ook door een COUNT te doen. Aantal pagina's is dus de count / 4 in jouw geval.
Daar dan een loopje voor bouwen die daar iets voor op het scherm tovert. Daar is vast ook al zat voorbeeld voor te vinden, want zoiets als dit zit op praktisch iedere website.

Je moet je query dan nog even aanpassen dat hij het resultaat voor pagina x ophaalt. Dus iets als startIndex = x * 4 + 1 (zero-based index), en dan de startIndex in de LIMIT gebruiken.

succes :)

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 20:57

MueR

Admin Tweakers Discord

is niet lief

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • chaterz
  • Registratie: Mei 2010
  • Laatst online: 05-08-2023
hoe wil ik ooit die aantal velden laten counten?
en die delen door 4 en de knoppen laten bouwen?

Acties:
  • 0 Henk 'm!

  • gvdh
  • Registratie: December 2009
  • Laatst online: 18:19
chaterz schreef op dinsdag 04 mei 2010 @ 10:23:
hoe wil ik ooit die aantal velden laten counten?
SQL:
1
SELECT COUNT(*) FROM gadgets

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

chaterz schreef op dinsdag 04 mei 2010 @ 10:23:
hoe wil ik ooit die aantal velden laten counten?
Met - pas op, hier komt het - de count-functie die je in een qury in kan bouwen?
en die delen door 4 en de knoppen laten bouwen?
Met een simpel rekensommetje in PHP?

Verfder: er worden hier talloze sleutelwoorden genoemd; paging, limit en count zijn er een paar. Het enige wat jij daarop te melden hebt is "ik kan het niet vinden". Sorry, maar als ik ga [google=php mysql paging limit] dan zie ik toch echt meer dan genoeg bruikbare info. Ik stel voor dat je zelf eens wat gaat uitzoeken. Dit topic gaat dicht bij gebrek aan eigen inzet.

'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.