Oud 07-12-2003, 12:26
neetolthof123
neetolthof123 is offline
He allemaal, ik heb een gastenboek zonder mysql . . . hij werkt echt helemaal goed. Maar het probleem is nou dat ik geen page limiet heb. Dus als er 100 berichten in staan, staan ze allemaal op 1 pagina.

Het lijkt mij lastig om de pagina te 'limiteren', omdat het dus niet in mysql werkt. Maar hier moet dus wel een optie voor zijn.

Ik heb overal al goed gezocht . . . en daarom vraag ik het hier maar.

weten jullie oplossing??

alvast hartstikke bedankt.

nEEt
Met citaat reageren
Advertentie
Oud 07-12-2003, 12:34
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
neetolthof123 schreef op 07-12-2003 @ 13:26:
He allemaal, ik heb een gastenboek zonder mysql . . . hij werkt echt helemaal goed. Maar het probleem is nou dat ik geen page limiet heb. Dus als er 100 berichten in staan, staan ze allemaal op 1 pagina.

Het lijkt mij lastig om de pagina te 'limiteren', omdat het dus niet in mysql werkt. Maar hier moet dus wel een optie voor zijn.

Ik heb overal al goed gezocht . . . en daarom vraag ik het hier maar.

weten jullie oplossing??

alvast hartstikke bedankt.

nEEt

Maak een query die de berichten ophaalt in ASCENDING order op het attribuut 'id'.

zolang je in die lus zit, laat je de 'gefetchte opbjecten eruit halen'

PHP-code:
$x 0;
while ((
$bla mysql_fetch_object($query)) && ($x 100)) {
       echo 
$bla->bericht;
       
$x $x 1;

zoiets?
Met citaat reageren
Oud 07-12-2003, 12:38
deathz0rz
deathz0rz is offline
Citaat:
Fade of Light schreef op 07-12-2003 @ 13:34:
Maak een query die de berichten ophaalt in ASCENDING order op het attribuut 'id'.

zolang je in die lus zit, laat je de 'gefetchte opbjecten eruit halen'

PHP-code:
$x 0;
while ((
$bla mysql_fetch_object($query)) && ($x 100)) {
       echo 
$bla->bericht;
       
$x $x 1;

zoiets?
omg, ben jij blind?

Citaat:
neetolthof123 schreef op 07-12-2003 @ 13:26:
He allemaal, ik heb een gastenboek zonder mysql . . .
__________________
Ooit. Dan.
Met citaat reageren
Oud 07-12-2003, 12:40
Verwijderd
Als de reacties in een oplopende array staan
gewoon de array met de keys van 25 tot 50 uitlezen..
Met citaat reageren
Oud 07-12-2003, 12:47
neetolthof123
neetolthof123 is offline
ja de berichten worden opgeslagen in een txt-file . . . ze staan gewoon op array (dit is gewoon per regel of niet) dus op elke regel van het txt-bestand staat een bericht met de benodigde informatie erin

...


Ik zou niet weten hoe je zoiets op zou moeten vragen om te limiteren
Met citaat reageren
Oud 07-12-2003, 12:48
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
deathz0rz schreef op 07-12-2003 @ 13:38:
omg, ben jij blind?
foutje, ik dacht juist MET sqyl

dat krijg je met n00bvragen, dan ga je maar de helft lezen

voor zover ik het probleem nu snap is het idd gewoon de index van de array limiteren. zoals trilo zegt.
Met citaat reageren
Oud 07-12-2003, 12:53
deathz0rz
deathz0rz is offline
Citaat:
Fade of Light schreef op 07-12-2003 @ 13:48:
foutje, ik dacht juist MET sqyl

dat krijg je met n00bvragen, dan ga je maar de helft lezen
__________________
Ooit. Dan.
Met citaat reageren
Oud 07-12-2003, 12:59
neetolthof123
neetolthof123 is offline
Citaat:
Fade of Light schreef op 07-12-2003 @ 13:48:
foutje, ik dacht juist MET sqyl

dat krijg je met n00bvragen, dan ga je maar de helft lezen

voor zover ik het probleem nu snap is het idd gewoon de index van de array limiteren. zoals trilo zegt.
Nounou...een noobvraagje?? haha . . . tsja.. daar zijn vragen voor he???

maar hoe limiteer ik dan die index van de array?
Met citaat reageren
Oud 07-12-2003, 13:16
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
neetolthof123 schreef op 07-12-2003 @ 13:59:
Nounou...een noobvraagje?? haha . . . tsja.. daar zijn vragen voor he???

maar hoe limiteer ik dan die index van de array?
ja daar zijnv ragen ook voor


PHP-code:
$x 25;   // begin bij bericht 25

while ($x <= 35) {
    echo 
$array[$x];
    
$x $x 1;
   } 
Nu laat ie bericht 25,26,27,28,29,30,31,32,33,34 en 35 zien, mits je per array element netjes je hele bericht (met detailzooi) hebt ingelezen.
Met citaat reageren
Oud 07-12-2003, 14:41
Unexplained
Avatar van Unexplained
Unexplained is offline
Is een for-loop niet veel netter in dit geval?

PHP-code:
for ($x 25$x <= 35$x++) {
   echo 
$array[$x];

__________________
Risico's: als je nooit iets nieuws probeert, mis je veel enorme teleurstellingen
Met citaat reageren
Oud 07-12-2003, 15:59
neetolthof123
neetolthof123 is offline
Maar hoe gebruik je zo iets?

Moet je dit gewoon kopieren en inplakken in de pagina die gelimiteerd moet worden??? ben redelijk noob op dit gebied, wantik ben pas bezig met php.
Met citaat reageren
Oud 07-12-2003, 16:17
neetolthof123
neetolthof123 is offline
Kijk ik zal hier ff het gehele script plaatsen van mij. . .


PHP-code:
<?php $file file("lines.txt");                    
$count count($file);             
$i = ($count 1); 
while (
$i != -1) {  
$gast explode("|"$file[$i]); 
echo 
"<div align=\"center\"><center>"
echo 
"<br>"
echo 
"<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"> 
<img src=\"
$gast[6]\" width=\"15\" height=\"15\">
  <img src=\"images/gastenboek_header.gif\">
  <tr>
    <td width=\"20%\"><strong>gepost door:</strong></td> 
    <td width=\"70%\"><a href=\"mailto:
$gast[1]\">$gast[0]</a></td> 
  </tr> 
  <tr> 
    <td width=\"20%\"><strong>datum: </strong></td> 
    <td width=\"70%\">
$gast[2]</td> 
  </tr> 
  <tr> 
    <td width=\"20%\"><strong>onderwerp: </strong></td> 
    <td width=\"70%\">
$gast[3]</td> 
  </tr>"

$text $gast[4]; 
$text converttext(stripslashes($text),0);  
$text converttext(stripslashes($text),1);  
$text converttext(stripslashes($text),2);  
echo 
"<tr>   
  <td width=\"100%\" bordercolor=\"#000000\" colspan=\"2\">
$text</td> 
  </tr>"

if (
$contr == ad) { 
echo   
"<tr> 
    <td width=\"17%\" bordercolor=\"#000000\">IP:</td> 
    <td width=\"83%\" bordercolor=\"#000000\">
$gast[5]</td> 
  </tr> 
</table> 
</center></div>"

} else { 
echo 
"</table> 
</center></div>"
; } 
$i = ($i 1);  

} else { } 
?></td> 
      </tr> 
    </table>
  </div>
</form> 
</body> 
</html>

Laatst gewijzigd op 07-12-2003 om 17:00.
Met citaat reageren
Oud 07-12-2003, 16:22
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
Unexplained schreef op 07-12-2003 @ 15:41:
Is een for-loop niet veel netter in dit geval?

PHP-code:
for ($x 25$x <= 35$x++) {
   echo 
$array[$x];

stijl van de scripter, boeit niet Ik werk toevallig vaak met whiles, hoewel ik for's ook nettter vind, maakt het niet echt uit
Met citaat reageren
Oud 07-12-2003, 16:32
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
if ($contr == ad)



vind ik erg raar die 'ad'...is dat een string? dan moet het 'ad' zijn, is het een variabele? dan meot het $ad zijn.

Maarja kan je ff alleen de nuttige informatie geven? Beetje teveel script om door te ploeteren

Of zeg ff in welke array je de verschillende regels uit het tekstbestand leest.

edit: ik denk dit;

while ($i != -1) {
$gast = explode("|", $file[$i]);

als je dan dit doet:

PHP-code:
while ($i != -1) {   
   $gast = explode("|", $file[$i]);  
    if ($i > 25 && $i <= 35) {
        ?><HTML TABLE zooi><?
        }
}
ohja gebruik een goede opmaak, dus NIET:
while (bla){
if (bla) {
while (bla){
}
}
}

maar WEL:
while (bla) {
if (bla) {
while (bla) {
}
}
}

Laatst gewijzigd op 07-12-2003 om 16:35.
Met citaat reageren
Oud 07-12-2003, 16:37
neetolthof123
neetolthof123 is offline
Wat zijn array's?? onderaan main.php staat de opmaak hoe het bericht eruit komt te zien. en waar het wordt opgeslagen

Ik kan het moeilijk vinden wat precies arrays zijn... sorry
Met citaat reageren
Oud 07-12-2003, 16:38
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
neetolthof123 schreef op 07-12-2003 @ 17:37:
Wat zijn array's?? onderaan main.php staat de opmaak hoe het bericht eruit komt te zien. en waar het wordt opgeslagen

Ik kan het moeilijk vinden wat precies arrays zijn... sorry
een array is uh ja...www.php.net zoek maar op array

een array is van de vorm:
arraynaam[index]
Met citaat reageren
Oud 07-12-2003, 16:46
neetolthof123
neetolthof123 is offline
ok heb ikgedaan.. is dus gewoon een manier om de data te sorteren, maar hoe kan ik dan in mijn script een volgende , vorige functie inbouwen??
Met citaat reageren
Oud 07-12-2003, 17:07
neetolthof123
neetolthof123 is offline
Ik snap er echt de ballen niet van... als ik dat deel van jou invoeg gebeurt in het gastenboek niks hoor....
Met citaat reageren
Oud 07-12-2003, 17:21
Screaming Slave
Screaming Slave is offline
Citaat:
Fade of Light schreef op 07-12-2003 @ 17:38:
een array is van de vorm:
arraynaam[index]
een arrayelement bedoel je?
Met citaat reageren
Oud 07-12-2003, 19:14
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
Screaming Slave schreef op 07-12-2003 @ 18:21:
een arrayelement bedoel je?
foutje
Met citaat reageren
Oud 07-12-2003, 19:15
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
neetolthof123 schreef op 07-12-2003 @ 18:07:
Ik snap er echt de ballen niet van... als ik dat deel van jou invoeg gebeurt in het gastenboek niks hoor....
ik gaf een voorbeeld hoe je in een array een stukje kan pakken (rijtje van elementen)... Ik bedoelde niet dat je dat zo maar kon copy pasten.
Met citaat reageren
Oud 07-12-2003, 19:20
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Voeg toe:

na:
$gast = explode("|", $file[$i]);
zet je:
if (($i > 10) && ($i < 20)) {

en voor:

$i = $i - 1;

zet je
}


Dan zou het kunnen werken, je ziet dan bericht 11,12,13,14,15,16,17,18 en 19.

Laatst gewijzigd op 07-12-2003 om 19:45.
Met citaat reageren
Oud 07-12-2003, 20:53
neetolthof123
neetolthof123 is offline
Citaat:
Fade of Light schreef op 07-12-2003 @ 20:20:
Voeg toe:

na:
$gast = explode("|", $file[$i]);
zet je:
if (($i > 10) && ($i < 20)) {

en voor:

$i = $i - 1;

zet je
}


Dan zou het kunnen werken, je ziet dan bericht 11,12,13,14,15,16,17,18 en 19.
ooh ok, echt relaxt... heb er een beetje mee zitte kloten en het werkt idd. maar als ik nu een volgende. vorige (navigatie) wil gaan maken??? wat moet ik dan doen? want nu kan je niet zoveel
Met citaat reageren
Oud 07-12-2003, 21:02
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Dat heb ik toevallig zelf ook.

Maak een pagina (ohja ik zet alleen de if en de sessie zooi er neer)

begin.php

PHP-code:
session_start();
session_register("nummer");
$_SESSION['nummer'] = 0;
$nummer $_SESSION['nummer'];

if (
$i 10) { } 

dan next.php
PHP-code:
session_start();
$_SESSION['nummer'] = $_SESSION['nummer'] + 1;
$nummer $_SESSION['nummer'];

$ondergrens $nummer 10;
$bovengrens = ($nummer 1) * 10;

if ((
$i >= $ondergrens) && ($i $bovengrens)) {} 
previous.php
PHP-code:
session_start();
$_SESSION['nummer'] = $_SESSION['nummer'] - 1;
$nummer $_SESSION['nummer'];

$ondergrens $nummer 10;
$bovengrens = ($nummer 1) * 10;

if ((
$i >= $ondergrens) && ($i $bovengrens)) {} 
Nu neem je stappen van 10, nog een beetje aankloten met wanneer je next WEL en NEIT mag zien (Evenzo voor previous, next mag je natuurlijk niet zien op delaatste pagina...herivoor, zelf ff nadenken )

Nu loop je wel alle berichten vna oud naar nieuw door, voor jou de opgave om het om te bouwen van nieuw naar oud
Met citaat reageren
Oud 07-12-2003, 21:14
neetolthof123
neetolthof123 is offline
Hey echt super dat je dit allemaal doet, maar ik snap hier niet veel van. Ik wil best die veranderingen toe gaan passen hoor maar dan moet ik eerst het principe weten hoe het werkt.

Moet ik nu nieuwe pagina's gaan maken zoals begin.php , next.php en previous.php ???

en moet ik die linken in het originele gastenboek.php???
Met citaat reageren
Advertentie
Oud 07-12-2003, 21:34
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Kopieer gastenboek.php 3 keer en noem die begin.php, next.php en previous.php . (gastenboek.php heb je dan niks meer mee te maken) en lees dan de tekst hieronder)

Als mensen voor het eerst op je gastenboek komen, komen ze op begin.php (duh )

Daar maak je een sessie aan (zie de code die ik gegeven heb) En maak je een sessie variabele aan (die heb ik nummer genoemd, van pagina nummer).

Per pagina heb ik in dit script gekozen voor 10 berichten, maar dat kan je natuurlijk zelf kiezen.

In begin.php geeft ie nu alle eerste 10 berichten aan. (0..9)
Dit is precies het script gastenboek wat je nu al hebt alleen dan if (($i > 10) && ($i < 20)) {} vervangen door if ($i < 10) { }

Bij alle pagina's gaat het steeds om die 'if'. Die selecteert wat de gebruiker precies te zien krijgt en wat niet.

Nou in next.php (apart bestand) is precies hetzelfde als de originele gastenboek.php alleen nu voeg je bovenaan toe

PHP-code:
session_start();  // dit meot je altijd bovenaan zetten als je met sessies werkt
$_SESSION['nummer'] = $_SESSION['nummer'] + 1;  // volgende pagina, dus pagina nummer ophogen
$nummer $_SESSION['nummer']; // maak een simpeler te gebruiken variabele aan

$ondergrens $nummer 10// nu krijg je plaatje van nummer*10 tot bovengrens te zien
$bovengrens = ($nummer 1) * 10
en de if (($i > 10) && ($i < 20)) {} uit gastenboek.php vervang je door vervangen door if (($i >= $ondergrens) && ($i < $bovengrens))

en previous.php is hetzelfde als next.php, maar dan ipv $_SESSION['nummer'] + 1; een $_SESSION['nummer'] - 1;

snappie?
Met citaat reageren
Oud 07-12-2003, 21:46
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
ohja en over de opmaak, ik vergat de tekst, leer dit jezelf aan, is een stuk overzichtelijker:

ohja gebruik een goede opmaak, dus NIET:
PHP-code:
while (bla){
echo 
"hatsjoe"
if (
bla) {
echo 
"<BR> gezondheid.";
while (
bla){
echo 
"aaaa";
}
}

maar WEL:
PHP-code:
while (bla) {
           echo 
"hatsjoe";   
           if (
bla)    {
                    echo 
"<BR> gezondheid.";
                    while (
bla) { echo "aaaa";
                                }
           }

Met citaat reageren
Oud 07-12-2003, 21:51
neetolthof123
neetolthof123 is offline
ok, echt bedankt voor je hulp... jij bent tenminste iemand waaraan andere forumgebruikers eeen voorbeeld kunnen nemen

Nu ga ik maar eens ff bedenken hoe ik kan oplossen om de lijst van nieuw naar oud te krijgen

haha

echt bedankt
Met citaat reageren
Oud 07-12-2003, 21:54
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
neetolthof123 schreef op 07-12-2003 @ 22:51:
ok, echt bedankt voor je hulp... jij bent tenminste iemand waaraan andere forumgebruikers eeen voorbeeld kunnen nemen
nee hoor, iedereen is hier wel behulpzaam, mits de vraag niet al 100x is gesteld en het niet in een sticky topic hoort

Citaat:
Nu ga ik maar eens ff bedenken hoe ik kan oplossen om de lijst van nieuw naar oud te krijgen

haha

echt bedankt
hehe succes, dat is niet echt een programmeer probleem, maar meer een puzzeltje...(maarja dat is programmeren an sich ook)
Met citaat reageren
Oud 07-12-2003, 23:30
Screaming Slave
Screaming Slave is offline
Citaat:
Fade of Light schreef op 07-12-2003 @ 20:14:
foutje
Met citaat reageren
Oud 08-12-2003, 15:27
neetolthof123
neetolthof123 is offline
Ik krijg de volgende foutmelding, ondaks hij het toch doet. Hoe moet je er voor zorgen dat de volgende en de vorige functie niet door blijft gaan naar lege pagina's (dus als je bij de het laatste bericht bent geweest, of het 1e)

Warning: Cannot send session cache limiter - headers already sent (output started at /home3/neet/public_html/index.php:7) in /home3/neet/public_html/begin.php on line 4


Op line 4 staat de begin van de session:

PHP-code:
session_start(); 
Met citaat reageren
Oud 08-12-2003, 15:47
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
session_start(); moet overal bovenaan (na <? ) staan in je bestanden.

Daarbij moet je nooit teruggaan naar begin.php

en hoe je het maximum kan bepalen, denk maar eens na
Met citaat reageren
Oud 08-12-2003, 15:55
neetolthof123
neetolthof123 is offline
Hij doet het echt niet, dan krijg ik alleen maar meer van die fouten
Met citaat reageren
Oud 08-12-2003, 15:58
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
alles.php

<?
session_start();

andere code

?>

dit moet voor begin, previous en next.

De ondergrens is natuurlijk makkelijk te bepalen. Als $_SESSION['nummer']=0 dan mag er geen previous button zijn.

Die error die jij tegen komt, krijg ik volgens mij alleen als ik includes gebruik. Zitten er toevallig submit buttons in begin.php of next.php of previous.php?
Met citaat reageren
Oud 08-12-2003, 16:03
neetolthof123
neetolthof123 is offline
ja het is een gastenboek, er zit een form in met submit

(en ik include begin, next en previous)


misschien zou ik het form in een aparte pagina moeten maken???

Laatst gewijzigd op 08-12-2003 om 16:11.
Met citaat reageren
Oud 08-12-2003, 16:13
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
Citaat:
neetolthof123 schreef op 08-12-2003 @ 17:03:
ja het is een gastenboek, er zit een form in met submit

(en ik include begin, next en previous)


misschien zou ik het form in een aparte pagina moeten maken???
een submit knop in begin.php kan idd fouten geven. En includes al helemaal.
Met citaat reageren
Oud 08-12-2003, 16:17
neetolthof123
neetolthof123 is offline
ooh haha, verdomme . . . Ja ik heb dus een hele pagina (tabellenpagina met de standaartopmaak), ik wil dan gewoon het gastenboek includen.
Met citaat reageren
Oud 08-12-2003, 16:39
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
nou eh, dan is het nog niet zo'n probleem... met sessies kan het ook, maar dna moet ik het hele script zien en ik heb eigenlijk geenzin om het allemaal uit te vogelen dan maar anders:


gewoon in de url de paginanummer meegeven en dan ophalen me $_get['nummer'];

dat nummer van buitenaf beinvloeden boeit toch geen reet (ivm beveiliging).

Dussuh begin op ../gastenboek.php?nummer=0

dat nummer=0 haal je op met $_GET['nummer'];
sla die ff op in de variabele $nummer.

Dan als je op next drukt krijg je $nummer = $nummer + 1; en dan link je naar ../gastenboek.php?nummer=$nummer
Met citaat reageren
Oud 08-12-2003, 16:39
neetolthof123
neetolthof123 is offline
Ik heb em net zonder include gedraaid, en zonder die submit (form),die had ik in een aparte pagina geladen. Maar nog steeds die fouten...
Met citaat reageren
Oud 08-12-2003, 16:41
Fade of Light
Avatar van Fade of Light
Fade of Light is offline
eh kijk eens aan:

Message
Warning: Cannot send session cache limiter - headers already sent
Occurance
PHP, HTML, webpages, using start_session() or headers()
Cause
The PHP function such as headers(), used with start_session(), produces HTML headers. When the PHP fragments are placed in the body of the HTML, this causes errors because the PHP fragments are trying to put HTML headers within the HTML body.
Solution
Put the PHP fragments before the HTML body tag.

weet je zeker dat je session_start(); helemaal bovenaan zet!?

(zet ze anders ook eens in het bestand waar je de rest include, misschien dat dat helpt)
Met citaat reageren
Oud 08-12-2003, 16:45
neetolthof123
neetolthof123 is offline
mmm... ff kijken
Met citaat reageren
Advertentie
Reageren

Topictools Zoek in deze topic
Zoek in deze topic:

Geavanceerd zoeken

Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware [PHP] Fotoboek: rijen en cellen
Martin
6 11-01-2003 19:06


Alle tijden zijn GMT +1. Het is nu 11:06.