Notice: Undefined variable: arrx in D:\xampp\htdocs\website\foodpoint\print.php on line 147

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- Ariën  -
Beheerder

- Ariën -

08/09/2020 15:22:54
Quote Anchor link
Dan kan het geen kwaad om eens de stofdoek erdoor heen te halen ;-).
Dar zal iedereen blij mee zijn.
 
PHP hulp

PHP hulp

16/04/2024 18:34:53
 
Marvin groothuis

marvin groothuis

08/09/2020 15:46:51
Quote Anchor link
- Ariën - op 08/09/2020 15:22:54:
Dan kan het geen kwaad om eens de stofdoek erdoor heen te halen ;-).
Dar zal iedereen blij mee zijn.


haha ja dat klopt, ik ga daar aan het einde eens een keer langs. ik probeer nu om een check box te veranderen naar een button, misschien dat jij daar een oplossing voor hebt?
 
- Ariën  -
Beheerder

- Ariën -

08/09/2020 15:49:39
 
Thomas van den Heuvel

Thomas van den Heuvel

08/09/2020 16:50:53
Quote Anchor link
Debuggen is een proces van eliminatie.

Hierbij helpt het (enorm) wanneer je vertrouwd bent met functiedefinities, returnwaarden en wat deze returnwaarden betekenen. PHP.net heeft zéér uitgebreide documentatie die je hierbij kan assisteren.

Zo staat bij mysqli_query() onder het kopje Return Values onder andere het volgende:
Quote:
Returns FALSE on failure.


Je zou dus in één stap direct na kunnen gaan of de query goed ging of niet door direct na de regel met $resultx = mysqli_query(...) het volgende te zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
var_dump(resultx);
?>

Als hier false uitkomt weet je meteen dat het probleem in de query zit.

Maar, misschien is het zoiets simpels als $arrx versus $arrX.

PHP is nog altijd case sensitive bij mijn weten.
Gewijzigd op 08/09/2020 17:05:26 door Thomas van den Heuvel
 
Marvin groothuis

marvin groothuis

09/09/2020 09:07:52
Quote Anchor link
He Thomas, bedankt voor je reactie. $arrx versus $arrX. dit had ik als eerste al geprobeerd maar dat maakte geen verschil.
En ook als ik dat stukje php code toevoeg gebeurt er niks.
Gewijzigd op 09/09/2020 09:19:39 door marvin groothuis
 
- Ariën  -
Beheerder

- Ariën -

09/09/2020 09:27:30
Quote Anchor link
Vergeet de $ niet voor resultx.
 
Marvin groothuis

marvin groothuis

09/09/2020 09:41:03
Quote Anchor link
- Ariën - op 09/09/2020 09:27:30:
Vergeet de $ niet voor resultx.

Helpt alsnog niet.
 
- Ariën  -
Beheerder

- Ariën -

09/09/2020 09:44:18
Quote Anchor link
Dan doe je iets fout, want je zou echt iets moeten zien.
 
Marvin groothuis

marvin groothuis

09/09/2020 10:00:48
Quote Anchor link
- Ariën - op 09/09/2020 09:44:18:
Dan doe je iets fout, want je zou echt iets moeten zien.


Ik denk dat ik het dan tussen het verkeerde stukje plak.

if ($resultx = mysqli_query($link, $sqlx)) {
$arrx = [];while ($objx = mysqli_fetch_object($resultx)) {
$arrx[] = $objx;
}
Als ik het goed begrijp moet het hier tussen toch?
 
- Ariën  -
Beheerder

- Ariën -

09/09/2020 10:07:43
Quote Anchor link
Zet even een ENTER na elke punt-komma. We willen graag helpen met je code, zolang het maar geen spaghetti-vormen gaat aannemen. Het gebruik van TAB bij if/while statements is ook niet verboden. ;)

Ik heb de code even wat overzichtelijker gemaakt, en de query even opgedeeld in een los deel, zodat je makkelijker kan debuggen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$resultx
= mysqli_query($link, $sqlx);
var_dump($resultx);
if ($resultx) {
   $arrx = [];
   while ($objx = mysqli_fetch_object($resultx)) {
     $arrx[] = $objx;
   }
}
else {
// Query mislukt, debug verder met mysqli_error($link);
}
?>
Gewijzigd op 09/09/2020 10:09:39 door - Ariën -
 
Marvin groothuis

marvin groothuis

09/09/2020 10:17:52
Quote Anchor link
- Ariën - op 09/09/2020 10:07:43:
Zet even een ENTER na elke punt-komma. We willen graag helpen met je code, zolang het maar geen spaghetti-vormen gaat aannemen. Het gebruik van TAB bij if/while statements is ook niet verboden. ;)

Ik heb de code even wat overzichtelijker gemaakt, en de query even opgedeeld in een los deel, zodat je makkelijker kan debuggen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$resultx
= mysqli_query($link, $sqlx);
var_dump($resultx);
if ($resultx) {
   $arrx = [];
   while ($objx = mysqli_fetch_object($resultx)) {
     $arrx[] = $objx;
   }
}
else {
// Query mislukt, debug verder met mysqli_error($link);
}
?>




Ja sorry ik weet het, nogmaals ik heb deze code niet zelf gemaakt.
Maar toch bedankt dat je de moeite voor mij neemt om mij toch te helpen.
Ik heb jou stuk code er nu ingeplakt en krijg nu dit: // object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(8) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) }

en dit: Notice: Trying to get property 'start_date' of non-object in D:\xampp\htdocs\website\foodpoint\print.php on line 155
 
- Ariën  -
Beheerder

- Ariën -

09/09/2020 10:25:33
Quote Anchor link
Dan levert je query geen resultaten op.
Echo eens $sqlx, en je weet meer over je query. Check ook de mysqli_error die ik gecomment heb.

Je kan een mooie melding tonen door na je mysqli_query met mysqli_num_rows te kijken of je aantal resultaten gelijk zijn aan 0 ( == 0 ).
Gewijzigd op 09/09/2020 10:28:48 door - Ariën -
 
Marvin groothuis

marvin groothuis

09/09/2020 10:44:50
Quote Anchor link
- Ariën - op 09/09/2020 10:25:33:
Dan levert je query geen resultaten op.
Echo eens $sqlx, en je weet meer over je query. Check ook de mysqli_error die ik gecomment heb.

Je kan een mooie melding tonen door na je mysqli_query met mysqli_num_rows te kijken of je aantal resultaten gelijk zijn aan 0 ( == 0 ).


Hiermee kom ik er ook niet uit.
 
- Ariën  -
Beheerder

- Ariën -

09/09/2020 10:51:14
Quote Anchor link
http://php.net/mysqli_num_rows
Check ook je query
En check je mysqli_error
Gewijzigd op 09/09/2020 10:52:11 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

09/09/2020 13:29:33
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$resultx
= mysqli_query($link, $sqlx);
var_dump($resultx);
if ($resultx) {
   $arrx = [];
   while ($objx = mysqli_fetch_object($resultx)) {
     $arrx[] = $objx;
   }
}
else {
// Query mislukt, debug verder met mysqli_error($link);
}
?>

Een mogelijk probleem met deze code is dat je $arrx alleen initialiseert indien de query geen fouten opleverde. Dit zou geen problemen opleveren als je de normale flow van je programma afbreekt indien er een queryfout optreedt, maar anders loopt je code gewoon door en is $arrx ongedefinieerd.

Je weet dus nu nog steeds niet of:
- de query fouten opleverde, maar je var_dump suggereert dat dit goed gaat omdat je een object terugkrijgt in plaats van false
- de query resultaten heeft of niet, maar het lijkt erop dat je niet kunt itereren over items van $arrx; het feit dat dit geprobeerd wordt suggereert dat $arrx niet leeg is en dus dat er resultaten zijn

Deze twee zaken spreken elkaar ogenschijnlijk tegen.

Het lijkt mij zaak dat je uitsluitsel krijgt over wat er nu aan de hand is.

Misschien is het handiger om als volgt te werk te gaan.

Zet allereerst het melden + weergeven van fouten aan door de volgende code toe te voegen aan het begin van je PHP-bestand:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');
?>


Vervolgens is het zaak om gewoon de eerste melding aan te pakken, deze op te lossen, en zo door alle foutmeldingen van het begin naar het einde heen te lopen.

Ik zie geen andere mogelijkheid dan deze stapsgewijze aanpak, want het is nogal lastig om het anders op afstand voor jou te debuggen.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.