Is er een resultaten limiet?
Ben benieuwd!
Er is ook een limiet op het (gealloceerd) geheugen voor php.
Het kan aan 1 van deze dingen liggen, maar volg vooral de raad van de poster boven mij.
.. en als je er niet uit raakt, copy/paste dan de error die je op het scherm krijgt
Gewijzigd op 03/01/2012 10:35:40 door Kris Peeters
The One op 03/01/2012 09:44:29:
Hallo, als ik een query uitvoer op mijn website dat een paar honderd records teruggeeft, krijg ik een blanco pagina. Als ik met dezelfde query minder records opvraag, werkt het wel.
Dat is dan per definitie niet dezelfde query :-)
Hoe zien die 2 queries er uit?
Het gaat om een boek met verschillende hoofdstukken die ik wil tonen, zie code hieronder. Ik gebruik het in joomla.
Quote:
<div style='background: transparent url(media/images/qframetop3.png) no-repeat top left; height:80px; margin:0; padding:0;'></div>
<div style='width:690px; background: transparent url(media/images/qframemiddle3.png) repeat-y top left; font-size:14px; font-weight: bold; text-align:left; margin:0; padding:0;'><div style='margin:0; padding:0px 30px 0px 30px;'>
<form name="boek" method="post" action="">
<center>
<select name="hoofdstuknr" id="hoofdstuknr" class="button">
<option value="1">Hoofdstuk 1</option>
<option value="2">Hoofdstuk 2</option>
<option value="3">Hoofdstuk 3</option>
<option value="4">Hoofdstuk 4</option>
</select>
<script type="text/javascript">
document.getElementById('hoofdstuknr').selectedIndex=-1;
</script>
<input type="button" class="button" value="Select" onclick="javascript:location.href='index.php?option=com_content&view=article&id=305&hoofdstuk='+document.getElementById('hoofdstuknr').options[document.getElementById('hoofdstuknr').selectedIndex].value;" />
</center>
</form>
<p><img style='vertical-align:middle;' src='media/images/qframerule3.png'></p>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
$url = $_SERVER['PHP_SELF'];
$hoofdstuknr = $_GET["hoofdstuk"];
if ($hoofdstuknr=="") $hoofdstuknr=1;
$query = "SELECT * FROM boek WHERE hoofdstuk=$hoofdstuknr ORDER BY hoofdstuk, nr";
//$aantal = mysql_num_rows($query) or die(mysql_error());
$resultaat = mysql_query($query) or die(mysql_error());
?>
$url = $_SERVER['PHP_SELF'];
$hoofdstuknr = $_GET["hoofdstuk"];
if ($hoofdstuknr=="") $hoofdstuknr=1;
$query = "SELECT * FROM boek WHERE hoofdstuk=$hoofdstuknr ORDER BY hoofdstuk, nr";
//$aantal = mysql_num_rows($query) or die(mysql_error());
$resultaat = mysql_query($query) or die(mysql_error());
?>
<div style='background: transparent url(media/images/qframetop3.png) no-repeat top left; height:80px; margin:0; padding:0;'></div>
<div style='width:690px; background: transparent url(media/images/qframemiddle3.png) repeat-y top left; font-size:14px; font-weight: bold; text-align:left; margin:0; padding:0;'><div style='margin:0; padding:0px 30px 0px 30px;'>
<form name="boek" method="post" action="">
<center>
<select name="hoofdstuknr" id="hoofdstuknr" class="button">
<option value="1">Hoofdstuk 1</option>
<option value="2">Hoofdstuk 2</option>
<option value="3">Hoofdstuk 3</option>
<option value="4">Hoofdstuk 4</option>
</select>
<script type="text/javascript">
document.getElementById('hoofdstuknr').selectedIndex=-1;
</script>
<input type="button" class="button" value="Select" onclick="javascript:location.href='index.php?option=com_content&view=article&id=305&hoofdstuk='+document.getElementById('hoofdstuknr').options[document.getElementById('hoofdstuknr').selectedIndex].value;" />
</center>
</form>
<p><img style='vertical-align:middle;' src='media/images/qframerule3.png'></p>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
while($data = mysql_fetch_array($resultaat)){
echo "<div style='padding-top:10px;'>(".$data['hoofdstuk'].":".$data['nr'].") ".$data['tekst']."</div>";
}
echo "</div></div><div style='background: transparent url(media/images/qframebottom3.png) no-repeat top left; height:80px; margin:0; padding:0;'></div>";
?>
while($data = mysql_fetch_array($resultaat)){
echo "<div style='padding-top:10px;'>(".$data['hoofdstuk'].":".$data['nr'].") ".$data['tekst']."</div>";
}
echo "</div></div><div style='background: transparent url(media/images/qframebottom3.png) no-repeat top left; height:80px; margin:0; padding:0;'></div>";
?>
Ik heb de error aangezet en krijg et volgende te zien, maar dit staat volgens mij los van mijn query, want bij de korte hoofdstukken krijg ik deze melding ook te zien, maar krijg ik wel de juiste tekst te zien, maar bij een lange hoofdstuk krijg ik nog steeds een blanco pagina zonder error oid.
Quote:
Notice: Could not connect to server in /var/customers/webs/website/plugins/content/jumi.php(69) : eval()'d code on line 88
Toevoeging op 03/01/2012 22:51:05:
De laatste error is nu opgelost, maar dat lost het probleem niet op, ik krijg nog steeds een lege pagina te zien..
Toevoeging op 03/01/2012 23:39:28:
Kris Peeters op 03/01/2012 10:33:10:
Er is een limiet op de verwerkingstijd van php.
Er is ook een limiet op het (gealloceerd) geheugen voor php.
Het kan aan 1 van deze dingen liggen, maar volg vooral de raad van de poster boven mij.
.. en als je er niet uit raakt, copy/paste dan de error die je op het scherm krijgt
Er is ook een limiet op het (gealloceerd) geheugen voor php.
Het kan aan 1 van deze dingen liggen, maar volg vooral de raad van de poster boven mij.
.. en als je er niet uit raakt, copy/paste dan de error die je op het scherm krijgt
Waar vind ik deze limieten?
Toevoeging op 03/01/2012 23:53:46:
De site is trwns wel overgezet naar een nieuwe server, maar vlgns mijn host zijn er geen instellingen veranderd...
Gewijzigd op 03/01/2012 22:31:21 door The One
$query = "SELECT * FROM boek WHERE hoofdstuk=$hoofdstuknr ORDER BY hoofdstuk, nr LIMIT 100";
Iemand?
Maar je kan controleren of tijd en/of geheugen een probleem is door dit in je script uit te breiden. Pas wel op met deze functies, want als je er veel gebruik van maakt kan je in problemen komen met de resources op je server, maar dat is jouw verantwoordelijkheid uiteraard.
Met set_time_limit() kan je de executietijd uitbreiden (standaard gelimiteerd op 30 seconden volgens mij).
Met ini_set('memory_limit','xxM') kan je het maximale geheugen aanpassen.
Quote:
Warning: set_time_limit(): Cannot set time limit in safe mode in /var/customers/webs/website/plugins/content/jumi.php(69) : eval()'d code on line 5
Maar is het niet vreemd dat het zomaar veranderd is? Het heeft altijd gewerkt..
Nog andere mogelijkheden?
Toevoeging op 06/01/2012 08:05:59:
Mijn provider geeft aan dat de memory_limit al op 1024M staat..
Ik geef de hoop op..
The One op 05/01/2012 18:23:54:
Quote:
Warning: set_time_limit(): Cannot set time limit in safe mode in /var/customers/webs/website/plugins/content/jumi.php(69) : eval()'d code on line 5
waarom draait php in safe mode? Miischien moet je je provider dat nog even vragen. Geen idee of het dit probleem veroorzaakt, maar helemaal lekker is het in geen geval.
Et is trwns niet meer nodig, ik heb al een andere manier gevonden dat wel werkt, nl et boek als txt bestand inlezen en middels XML een mooi structuur van gemaakt. Dan maar zonder sql..
Maar toch nog bedankt allemaal voor et meedenken?