$_GET werkt voor de helft

Status
Niet open voor verdere reacties.

gebruiker35

Gebruiker
Lid geworden
29 mrt 2008
Berichten
434
Ik heb het volgende script:

PHP:
$aant = $_GET["berichten"];
$gegevens = file_get_contents("nieuws.txt");
$gegevens = nl2br($gegevens);

$gegevens = explode ('||', $gegevens );

for($i = 0; $i < "$aant"; $i++)
{
echo"$gegevens[$i]";
}

als je nu ?berichten=10 doet, krijg je er vijf, doe je 2, dan krijg je er 1, doe je er 1 dan krijg je er geen...

wat zit hier voor fout?
 
Beste tjallink,

Ik heb eerlijk gezegd nooit eerder met een for loop gewerkt,
maar ik denk dat je je < teken moet veranderen in <= .
 
Als je de waarde van variabelen wil gebruiken, doe dat dan, en gebruik ze niet als onderdeel van een string. Het is niet echt verkeerd om dat wel te doen, maar de leesbaarheid van je code gaat er meestal niet op vooruit.

Voeg ook eens een aantal debug-echo's toe als je code niet werkt, dat kan voor een hoopje duidelijkheid zorgen.
PHP:
$aant = $_GET["berichten"];
$gegevens = file_get_contents("nieuws.txt");
$gegevens = nl2br($gegevens);
//nakijken of de inhoud van nieuws.txt correct werd ingeladen
echo "<h1>Nieuws.txt</h1><hr />" . $gegevens . "<hr />";

$gegevens = explode ('||', $gegevens );
//nakijken of de correcte array werd aangemaakt
echo "<h1>Gegevens</h1><hr /><pre>";
print_r($gegevens);
echo "</pre><hr />";

for($i = 0; $i < $aant; $i++)
{
    echo $gegevens[$i];
}
 
Johantrax bedankt..

het geeft inderdaad een hoop duidelijkheid.

Hij vormt de volgende array...

PHP:
Array
(
    [0] =>  
    [1] =>  <div id='naam'>  <div id='time'> 12:54:20 | 19-08-08 </div>  asdf</div> <div id='bericht'> sadf </div><p> 
    [2] => <br />
	 
    [3] =>  <div id='naam'>  <div id='time'> 12:54:17 | 19-08-08 </div>  asdf</div> <div id='bericht'> asdf </div><p> 
    [4] => <br />

	 
    [5] =>  <div id='naam'>  <div id='time'> 12:54:13 | 19-08-08 </div>  asdf</div> <div id='bericht'> ;euksadf </div><p> 
    [6] => <br />
	 
    [7] =>  <div id='naam'>  <div id='time'> 09:53:52 | 19-08-08 </div>  :D</div> <div id='bericht'> &quot; <img src="emos/teeth_smile.gif" alt="Smilie" > </div><p> 
    [8] => <br />

	 
    [9] =>  <div id='naam'>  <div id='time'> 09:53:09 | 19-08-08 </div>  Vulkaanstof zorgt voor rode gloed boven Nederland </div> <div id='bericht'> BRON: <a href="http://www.Nu.nl" target="_blank">www.Nu.nl</a><br></div><p> 
    [10] => <br />

	     
)


Hij maakt dus een verkeerde array aan. Door n2lrb maakt hij van de enter een <br />
Die inter zit op die plaats, omdat ik ieder bericht plaatste tussen || en || waarna weer een volgende bericht kwam tussen || en || ,

met een enter ertussen.
Er mag maar 1 keer || tussen de berichten staan.

bedankt voor de tip die tot de oplossing leidde!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan