Door
De Clercq Andy
op 03-06-2016 09:14
gewijzigd op 03-06-2016 09:17
3.192 views
Hallo,
pas een nieuwe versie online geplaatst en ik stuit op een raar probleem.
Wanneer ik de pagina's bekijk toont hij slechts het stuk tot aan de div met id container.
Ook in mijn broncode lijkt daar alles te stoppen.
Wanneer ik het bestand echter open in mijn editor zie ik alle code staan.
Heeft iemand enig idee?
Deze pagina's zijn eerst gemaakt op mijn wampserver en daar lijkt alles correct te werken.
Alvast bedankt!
Welke andere variabelen? En maakt dit uit voor het huidige vraagstuk? Bij debuggen is het zaak dat je enkel relevante zaken bekijkt en niet *alles*, want dan zie je vaak door de bomen het bos niet meer. Volg gewoon het eerder besproken kruimelpad en zie eerst eens waar dat je brengt.
Dit heb ik gedaan. De variabele $resulttabbladen gaf NULL en dan ben ik de andere gaan onderzoeken en deze gaven ook null. Vandaar dat ik bovenstaande deed.
Maar nu snap ik wel niet waar dit op wijst.
Dus pas je foutafhandeling toe op je query. Nogmaals: je laat nu gewoon de applicatie altijd doorlopen, dat wil je niet.
Kortom:
<?php
if (!$conn->query(....)) {
// haal hier je foutmelding uit $conn->error
}
?>
De problemen duiken vooral op bij een query die geen records als resultaat geeft.
Wat denken jullie hiervvan?
<?php
if (false === $query)
{
echo $conn -> error();
}
else
{
//correcte query
if (NULL === $result)
{
//code om uit te voeren indien er geen records zijn
}
}
?>
Of geeft die lege resultaatset altjd false en hoe vang je dit dan p?
or successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object.
Ook als er geen resultaten zijn.
Ik zou foutafhandeling apart, en eenmalig, programmeren en niet rechtstreeks in je applicatie-code zetten, en foutmeldingen ergens (anders) opvangen. Anders bestaat een groot deel van je code uit extra if-constructies en het dumpen van foutmeldingen waar (eind)gebruikers toch niets aan hebben. Plus je doet elke keer hetzelfde, indien iets false of NULL of whatever is staak je het programma. Dit kun je elders, en eenmalig, oplossen. Bijvoorbeeld door het schrijven van een of enkele wrapper classes. Deze kunnen je veel werk besparen (noot: deze wrappers zijn ondertussen weer wat veranderd, maar de versie die daar staat werkt volgens mij ook prima en kan sowieso dienen als inspiratie).
Wat je moet doen als er geen resultaten zijn ($result->num_rows == 0) is applicatie-specifiek. Dit zou je wel rechtsreeks in je code kunnen regelen omdat je daar ook moet besluiten wat er dan moet gebeuren.