Ik heb pasgeleden mijn server geupdate naar php 7.2

En op geen enkele site werken de while loops nog lijkt het nu wel.
Ik denk dus dat dit aan de update ligt.

Ik heb even een phpinfo gemaakt op http://corjapin.nl/server.php

Is er iemand die hier iets geks ziet?

Hier een voorbeeld van een select query die in plaats van 4 resultaten, dus maar 1 resultaat weergeeft.
Ook zonder limit geeft hij maar 1 resultaat.


<?php
$query = "SELECT * FROM berichten ORDER BY id DESC LIMIT 4";
				$stmt = mysqli_query($connection, $query);
				
				while ($data = mysqli_fetch_array($stmt,MYSQLI_ASSOC))
				{
				?>
			
                                <li class="col-md-3 col-sm-6 col-xs-12">
                                    <div class="thumbnail">
                                        <a href="page.php?id="<?php echo $data['id']; ?>"><img width="250" height="250" alt="<?php echo $data['title']; ?>" src="<?php echo $data['image']; ?>"></a>
                                        <div class="caption">
                                            <h3><a href="page.php?id="<?php echo $data['id']; ?>"><?php echo $data['title']; ?></a></h3>
                                            <p><?php echo nl2br(substr($data['message'],0,150)); ?>.....</p>
                                            <a href="page.php?id=<?php echo $data['id']; ?>" class="btn btn-link" role="button">Lees meer</a>
                                        </div>
                                    </div>                                        
                                </li>
<?php
				}
				?>
Hmmm... mysqli_fetch_array($stmt,MYSQLI_ASSOC). Waarom niet meteen mysqli_fetch_assoc() dan? :D

Anyhow:
- weet je zeker dat er meer dan 1 resultaat is?
- heb je al wat errorlogging aangezet om te kijken of er dingen foutgaan?
- en/of heb je errorlogs geinspecteerd?
- heb je de HTML-broncode van de pagina bekeken? misschien gaat je code ergens onderuit met een foutmelding?

Met het volgende trap ik misschien een open deur in maar: er gebeurt iets onverwachts, je krijgt maar 1 resultaat terwijl dit er meerdere moeten zijn. Je zult dan eerst op onderzoek uit moeten gaan naar wat er misgaat. Hiervoor heb je informatie nodig die je meer kan vertellen over de toestand van bovenstaande code. Pas als je een oorzaak hebt kun je toe naar een oplossing.

Zo zou je in bovenstaande code heel simpel kunnen nagaan hoeveel resultaten $stmt heeft met num_rows().

Dan zou je bovenaan je code het volgende kunnen zetten:
<?php
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');
?>


Mogelijk vallen er dan nog wat andere lijken uit de kast die je ook of wellicht eerst zult moeten oplossen.

NB: mogelijk loont het ook de moeite om jezelf vertrouwd te maken met de object georienteerde schrijfwijze van mysqli. Dit scheelt je op zijn minst wat typewerk ;).
Hoi Thomas,

Dank voor je reactie.

met num_rows geeft hij wel als aantal '4' weer, dus dat klopt.

De errors gaven alleen een fout op de while waar de tweede parameter stond, die heb ik weggehaald, en nu geen errors meer.
Maar dat lost het probleem niet op.

Het zit dus wel ergens in de while loop lijkt het.
Zet eens deze code in je while?

echo "<pre>".print_r($data,true)."</pre>";

Wat zie je dan?
Met print_r zie ik idd netjes alle 4 records verschijnen in de print_r.

Maar vreemder nog, hij geeft dan ook ineens alle 4 de records gewoon weer op de normale manier?
Lijkt mij sterk, want print_r() geeft een array-boom aan om te debuggen, en geen kant-en-klaar formaat. Ik denk dat er wat in je code speelt wat buiten ons zicht is.
Dat klopt, en die array geeft hij ook weer, maar tevens de 4 records zoals ze weergegeven horen te worden.
Haal ik de print_r weer weg, dan weer maar 1 resultaat.

Maar het is ook niet alleen op deze pagina, maar alle pagina's op elke site op deze server.
Zie je in de bron van je pagina ook maar één rij in plaats van vier?
In de bron zie ik wel alles staan.

Daar zag ik ook een <iframe> staan van een audioplayer, en daar liep de hele boel op vast blijkbaar.
Dit weggehaald uit het database record, en hij doet het...
Fijn dat het opgelost is.

Uit interesse: Welke audioplayer?
Ik ben ooit een audioplayer gezien die in een playlist serieus ajax-requests in een loop uitvoerde, en alle JS-scripts ook steeds opnieuw inlaadde.

Reageren