login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hij blijft hangen in een loop? (Opgelost)

Offline pim1991 - 29/06/2009 12:14
Avatar van pim1991PHP interesse Hallo,

Heb een functie ontworpen die ik via verschillende pagina's aan roep.

  1. public function getLastNews ( $aantal ) {
  2.  
  3. $query = mysql_query("SELECT * FROM klanten_nieuws ORDER BY id DESC LIMIT ".$aantal) or die("mySQL Error!".mysql_error());
  4. $this->newsData = mysql_fetch_object($query);
  5.  
  6. $i = 0;
  7. while ($this->newsData) {
  8.  
  9. $news[$i] = $this->newsData->id."|".$this->newsData->datum."|".$this->newsData->titel."|".$this->textlimit ($this->text,75);
  10.  
  11. $i++;
  12.  
  13. }
  14.  
  15. return $news;
  16.  
  17. }


Hij wordt meestal zo aangeroepen:
  1. $i = 3;
  2.  
  3. $news = new News();
  4.  
  5. $newsData = $news->getLastNews ($i);
  6.  
  7. for ($t = 0; $t <= $i; $t++) {
  8.  
  9. $newsart = explode ("|",$newsData[$t]);
  10.  
  11. echo "<div class=\"block\">";
  12. echo "<img src=\"images/news.png\" alt=\"\" />".date("d-m-Y", $newsart[1])."";
  13. echo "<h3>".$newsart[2]."</h3>";
  14. echo $newsart[3];
  15. echo "<br />";
  16. echo "<a href=\"http://www.piwi-web.com/actueel.php?id=".$newsart[0]."\" class=\"readMore\">Lees meer</a>";
  17. echo "<br class=\"clear\">";
  18. echo "</div>";
  19. echo "<br />";
  20.  
  21. }


En nu krijg ik deze fout:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in /home/piwiweb/domains/piwi-web.com/public_html/klanten_beta/core/classes/news.class.php on line 19

Ik heb dus zo'n idee dat hij daar blijft hangen. De lijn waar het script over zeurt is deze met $news[$i] in.

Ik denk dat ik verkeerd denk maar weet niet hoe ik het anders kan oplossen.

Alvast bedankt voor de hulp!

6 antwoorden

Gesponsorde links
Offline Martijn - 29/06/2009 12:21
Avatar van Martijn Crew PHP ik ben niet van classes, maar volgens mij gebruik je je $this->data verkeerd, en gebruik je de class nu als een functie Je moet ff kijken naar class+setter
Offline pim1991 - 29/06/2009 12:25
Avatar van pim1991 PHP interesse Hmm, ja moet er inderdaad een setter van maken 

Maar denk niet dat dat het probleem gaat oplossen omdat hij ergens anders over struikelt.
Offline Martijn - 29/06/2009 12:29
Avatar van Martijn Crew PHP je moet ook geen for gebruiken, maar een foreach

  1. foreach($newsData as $key=> $value){
  2. $newsart = explode ("|",$value);
  3. // enzo
Offline pim1991 - 29/06/2009 12:37 (laatste wijziging 29/06/2009 12:49)
Avatar van pim1991 PHP interesse Krijg ik nog altijd hetzelfde helaas.

Het zit zich dan ook niet in het 2de script maar in het eerste.

Blijkbaar mag dit stukje niet zo:
  1. #
  2. $news[$i] = $this->newsData->id."|".$this->newsData->datum."|".$this->newsData->titel."|".$this->textlimit ($this->text,75);


EDIT:

Heb het nu wat veranderd maar het blijft nog steeds hetzelfde:
  1. public function getLastNews ( $aantal ) {
  2.  
  3. $query = mysql_query("SELECT * FROM klanten_nieuws ORDER BY id DESC LIMIT ".$aantal) or die("mySQL Error!".mysql_error());
  4.  
  5. while ($this->newsData = mysql_fetch_object($query)) {
  6.  
  7. $news. = $this->newsData->id."|".$this->newsData->datum."|".$this->newsData->titel."|".$this->textlimit ($this->text,75).";";
  8.  
  9. }
  10.  
  11. return $news;
  12.  
  13. }


EDIT2:
Wat liggen debuggen en het ligt blijkbaar aan de sessies die een loop maken. Wanneer session_start() niet bovenaan de index staat doet hij het gewoon.
Offline Martijn - 29/06/2009 13:47
Avatar van Martijn Crew PHP heb je dan mssn een sessie waarde die overeen komt met 1 van je worden uit die regel?
Offline pim1991 - 29/06/2009 14:00 (laatste wijziging 29/06/2009 15:14)
Avatar van pim1991 PHP interesse Het staat er los van.
Ben nog even aan het kijken, anders post ik mijn code wel even hier 

EDIT: het werkt.
Had een sessie verkeerd neergezet en de foreach moest erin bij nieuws.
Het werkt nu 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.23s