login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bij maximum afkappen

Offline ikki007 - 25/01/2007 08:21 (laatste wijziging 25/01/2007 08:21)
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Ik gebruik deze code om dingetjes uit de database te trekken en weer te geven:

  1. <?php
  2. $ophalenwebsites = mysql_query("SELECT id FROM portfolio WHERE categorie='websites' ORDER BY id DESC");
  3.  
  4. $iwebsites = 1;
  5.  
  6. while($getwebsites = mysql_fetch_assoc($ophalenwebsites))
  7. {
  8. echo "<a href=\"preview.php?p=".$getwebsites['id']."\" title=\"".$iwebsites."\" target=\"portfolio\">".$iwebsites."</a> ";
  9. $iwebsites++;
  10. }
  11. ?>


Stel hij vindt 12 id's met als categorie websites laat die netjes zien:

Citaat:
1 2 3 4 5 6 7 8 9 10 11 12


Nu wil ik als het er meer dan 10 worden dat die afkapt met >> en als je op >> klikt krijg je nummertje 11 en 12 te zien.

Ikki

28 antwoorden

Gesponsorde links
Offline Thomas - 25/01/2007 08:41
Avatar van Thomas Moderator Je wilt dus pagina's maken voor pagina's met pagina-nummers?
Oftewel je pagina-nummering verdelen over meerdere pagina's?
Offline Nrzonline - 25/01/2007 10:07 (laatste wijziging 25/01/2007 10:08)
Avatar van Nrzonline PHP ver gevorderde zie tutorials, en zoek naar pagina navigatie (+php)
Die tutorials volgen, en als je een beetje verstand hebt van PHP, moet je dat zeker wel kunnen omzetten naar wat jij wilt.
Offline Thomas - 25/01/2007 10:39
Avatar van Thomas Moderator Ik heb eens een ding gemaakt dat intervallen van 10 (of een ander aantal) kan "uitklappen", stel je hebt 32 pagina-links:

Als je op pagina 1 zit:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 [11-20] [21 - 30] [31-32]

Als je op pagina 23 zit:
[1 - 10] [11 - 20] 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 [31 - 32]

Pagina 32:
[1 - 10] [11 - 20] [21 - 30] - 31 - 32
Offline Kr4nKz1n - 25/01/2007 10:40 (laatste wijziging 25/01/2007 10:42)
Avatar van Kr4nKz1n Onbekend Oke, maar wat heeft hij hier aan? Je zegt dat je het ooit eens hebt gemaakt. Verder geen coding of iets dergelijks.

-Edit-
Als je hem zou kunnen terug vinden, en hem zou posten zou dat geweldig zijn, want dat is een heel mooi pagina navigatie systeem.
Offline ikki007 - 25/01/2007 11:34
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Nee ik gebruik het voor een portfolio systeempje.
In de admin panel voeg je een preview link en fullsize link toe, ik haal ze op en zet ze in 1 2 3 4 enz.
Als je op 1 klikt opent die de preview en die is klikbaar en als je erop klikt opent die fullsize.

http://www.solix.nl/portfolio.html

klik maar iets aan, dan snap je wat ik bedoel.. ;)
en als je kijkt bij photography heb je die >>..
Hij heeft het nu allemaal handmatig gedaan daarom maak ik dit systeempje.
Maar die van jou FangorN is niet zo netjes op die pagina
Offline Kr4nKz1n - 25/01/2007 11:37
Avatar van Kr4nKz1n Onbekend Wel heel erg jammer van je iframe 
Offline ikki007 - 25/01/2007 11:44
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Heb ik hem ook vertelt, hij is niet van mij hoor ;)
Offline Thomas - 25/01/2007 12:22
Avatar van Thomas Moderator Het enige wat je hoeft te gebruiken is een "offset" die je meegeeft aan je URL. Deze geeft dan aan op welke pagina-met-maximaal-10-items je zit.

De manier die jij wilt gebruiken is nagenoeg gelijk aan die van mijn pagina-navigatie-tutorial. Je geeft een waarde mee aan de URL die je op een bepaalde manier gebruikt in je query (in je LIMIT-gedeelte).
Offline ikki007 - 25/01/2007 14:03 (laatste wijziging 26/01/2007 08:22)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Sorry maar ik snap even niet wat ik nu precies moet doen   
Offline Thomas - 26/01/2007 09:09
Avatar van Thomas Moderator Heb je al iets geprobeerd?
Tutorial gelezen? Doen!
Code geproduceerd? Vastgelopen? Zien!

En anders trek je een nummertje in het onderdeel samewerken.

De code is absoluut niet moeilijk. De tutorial geeft je genoeg ideeën om dit zelf op te lossen.
Offline ikki007 - 26/01/2007 13:24
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Ik weet niet eens waar ik moet beginnen.
Die tutorial gebruikt een hele andere code, moet ik hem dus helemaal overnieuw schrijven?
Offline Kr4nKz1n - 26/01/2007 13:34
Avatar van Kr4nKz1n Onbekend Nee, kijken wat van toepassing is.

Alleen het vereist wel kennis. Dit is te moeilijk voor een beginner denk ik.
Offline Thomas - 26/01/2007 13:44
Avatar van Thomas Moderator Je kunt toch van hetzelfde principe gebruik maken?

Als je de "vertaalslag" van tutorial naar jouw variant niet kunt maken, lijkt het mij reden te meer om jezelf eens af te vragen over hoe je dit aan gaat pakken, in plaats van het denkwerk (weer?) aan anderen over te laten.

Echt, alle ingrediënten zijn aanwezig (een navigatie-variabele in je URL, een stukje code die hier eens kritisch naar kijkt, een query en navigatie die op grond hiervan worden opgebouwd), aan jou de taak om hier iets van te bakken. Deze ervaring lijkt mij belangrijk als je op den duur zelf dingen in elkaar wilt zetten (practise makes perfect).

En als je in dit alles geen zin hebt Samenwerken.
Offline ikki007 - 26/01/2007 14:29
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Ja maar wat een heeft dit met mijn dinges te maken, als ik nu 25 items heb maakt die 1 - 2 - 3 - 4 -5, ik snap niet wat ik daar aan heb.
Ik wordt echt gek nu  
Offline Cozze - 28/01/2007 17:05
Avatar van Cozze HTML interesse
  1. <?php
  2.  
  3. $start = @$_REQUEST['start'];
  4. if(empty($start)) { $start = 0; }
  5.  
  6. $aantal_op_1_pagina = 10;
  7.  
  8. $ophalenwebsites = mysql_query("SELECT id FROM portfolio WHERE categorie='websites' ORDER BY id DESC LIMIT $start,$aantal_op_1_pagina");
  9.  
  10. $iwebsites = 1;
  11.  
  12. while($getwebsites = mysql_fetch_assoc($ophalenwebsites))
  13. {
  14. if($iwebsites < 11) {
  15. echo "<a href=\"preview.php?p=".$getwebsites['id']."\" title=\"".$iwebsites."\" target=\"portfolio\">".$iwebsites."</a> ";
  16. }else{
  17. echo "<a href=\"preview.php?start=".($iwebsites*$aantal_op_1_pagina)."\"> >>> ";
  18. }
  19.  
  20. $iwebsites++;
  21. }
  22. ?>


Bedoel je iets in deze stijl (heb het niet getest, misschien kan je er iets uithalen)
Offline ikki007 - 28/01/2007 17:08
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Cozze, hij selecteert er nu wel maar 10 alleen nu komt er geen >> te staan.
Als ik ?start=1 toevoeg laat die ook maar 1 t/m 10 zien  
Offline Berten - 28/01/2007 17:16
Avatar van Berten PHP beginner op lijn 17 van cozze zen code is hij de link tag vergeten af te sluiten met </a> daarom geeft ie de >> niet weer.

had je zelf ook kunnen zien
Offline ikki007 - 28/01/2007 17:22 (laatste wijziging 28/01/2007 18:06)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Was me al opgevallen, maar lost het probleem niet op  

EDIT: Volgens mij komt het door de limit, hij haalt er niet meer dan 10 op dus kan $iwebsites nooit groter dan 10 zijn  
Dus heb ik $aantal_op_1_pagina even aangepast naar 11 en dan liet die wel >>> zien alleen met een rare link.. ?start=121 en als ik daarop klik gebeurt er niks..
Hoe kan ik dit fixen
Offline Grayen - 28/01/2007 19:02
Avatar van Grayen PHP ver gevorderde misschien heb je hier wat aan?

  1. <?php
  2. function navigatie($sQuery, $iItems, $sNow)
  3. {
  4. $iNow = $_GET[$sNow];
  5. // Om juiste berekeningen te maken moet er bij het id een worden opgeteld.
  6. $iNow++;
  7. // Het totaal aantal rijen in de tabel.
  8. $iTotal = mysql_num_rows(mysql_query($sQuery));
  9. // Controleren of iemand niet de url handmatig heeft lopen wijzigen, waardoor errors ontstaan.
  10. if($iNow > $iTotal) $iNow = $iTotal;
  11. else if($iItems > $iNow) $iNow = $iItems;
  12. // Berekend een waarde waarmee hij moet vermedigvuldigen en rond deze naar boven af.
  13. $iNow = ceil($iNow / $iItems);
  14. $iMax = ceil($iTotal / $iItems);
  15. $sNav = $iNow > 1 ? '<a href="preview.php?'.$sNow.'='.($i - 1).'" title="vorige" target="portfolio">&lt;&lt;</a>' : '';
  16. for($i = ($iNow * $iItems - $iItems + 1); $i <= ($iNow * $iItems); $i++)
  17. {
  18. $sNav .= '<a href="preview.php?'.$sNow.'='.($i - 1).'" title="'.$i.'" target="portfolio">'.$i.'</a>';
  19. }
  20. $sNav .= $iNow < $iMax ? '<a href="preview.php?'.$sNow.'='.($i - 1).'" title="vorige" target="portfolio">&gt;&gt;</a>' : '';
  21. $aReturn['navigatie'] = $sNav;
  22. $aReturn['query'] = $sQuery." LIMIT ".$aLimit['start'].','.$aLimit['end'];
  23. }
  24. $aNavigatie = navigatie("SELECT id FROM portfolio WHERE categorie = 'websites'", 10, 'id');
  25. // een query om een loop uit te voeren, indien nodig.
  26. $aNavigatie['query'];
  27. // De navigatie
  28. $aNavigatie['navigatie'];
  29. ?>


Net ff gemaakt, niet getest
Offline ikki007 - 28/01/2007 19:10
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Mag ik ook vragen hoe te gebruiken, ik ben geen held in functions  
Offline Grayen - 28/01/2007 19:35
Avatar van Grayen PHP ver gevorderde sorry dat had ik idd even beter kunnen uitleggen 

  1. "SELECT id FROM portfolio WHERE categorie = 'websites'"

de query die je normaal zal uitvoeren.


Het aantal nummers hij per keer moet neergeven.


Hoe de variable in de url wordt genoemd, meestal zal je hiervoor id gebruiken, maar dit zal evengoed 'p' kunnen zijn.

  1. $aNavigatie['query']

Is de query waarmee je zoals hier op sitemasters, bijvoorbeeld de 10 reacties per pagina kan weergeven.

  1. $aNavigatie['navigatie']

de html voor de navigatie, dus met alle linkjes erin ;).
Offline Ibrahim - 29/01/2007 08:00
Avatar van Ibrahim PHP expert niet echt slim om ervan uit te gaan dat mensen de juiste getal in de url zetten he 
Offline ikki007 - 29/01/2007 08:19 (laatste wijziging 29/01/2007 08:21)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Dus zo:

  1. <?php
  2. include("functies.php");
  3.  
  4. $portfolio = portfolio("SELECT id FROM portfolio WHERE categorie = 'websites'", 10, 'id');
  5.  
  6. echo $portfolio;
  7. ?>
Offline Warbringer - 29/01/2007 09:08
Avatar van Warbringer Onbekend
  1. <?php
  2. $portfolio = portfolio("SELECT * FROM portfolio WHERE categorie = 'websites' ORDER BY 'id' DESC LIMIT 1,10");
  3. ?>


Werkt dat niet? Je selecteerd alles in de table portfolio op id (of waarop je ze dan ook wilt ordenen (aflopend in dit voorbeeld).
Je weergeeft er maar 10 omdat je nummer 1 t/m 10 pakt (LIMIT).
Op de volgende pagina of hoe je het ook doet verander je de LIMIT naar 11,20 of zo voor de volgende 10... zo doe ik het meestal 
Offline ikki007 - 29/01/2007 12:53
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Ja maar dan moet ik allemaal pagina's maken..?
Offline vinTage - 29/01/2007 13:09
Avatar van vinTage Nieuw lid http://www.site...amp;id=249
Offline Grayen - 29/01/2007 14:19 (laatste wijziging 29/01/2007 14:20)
Avatar van Grayen PHP ver gevorderde
Citaat:
niet echt slim om ervan uit te gaan dat mensen de juiste getal in de url zetten he

??? heb je mijn script wel bekeken? er komen linken en klikken ze die aan dan krijg je in de url het juiste getal (de id) en als ze handmatig die id zouden veranderen, dan word als deze kleiner is als het minimum verhoogd en als hij groter is verlaagd naar het maximum.

  1. <?php
  2. include("functies.php");
  3.  
  4. $portfolio = navigatie("SELECT id FROM portfolio WHERE categorie = 'websites'", 10, 'id');
  5.  
  6. echo $portfolio['navigatie'];
  7.  
  8. en wil je de afbeelding van de huidige id laten zien, doe je gewoon een query uitvoeren met where id = $_GET['id'].
  9. ?>
Offline ikki007 - 29/01/2007 14:42 (laatste wijziging 29/01/2007 16:21)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
@Grayen, hij laat gewoon een witte pagina zien   
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.311s