Notice: Trying to access array offset on value of type null
Na enkele jaren als amateur php te gebruiken, probeer ik het php programmeren te hernemen, wat niet gemakkelijk is met de PHP7.
Via de onderstaande code wil ik de gegevens uit de mysql tabel halen.
wat lukt met het eerste deel code omop te halen met alle cellen naast elkaar zonder opmaak, maar ik wil deze nu in een tabel zetten om een mooier uitzicht te hebben.
met onderstaande code als ik volgend zet dat deze niet uitgevoerd wordt of verwijder "echo "$row[id] $row[dag] $row[open] $row[openu] $row[openu] <a href='edit.php?edit=$row[id]'>edit<br /><br /></A>";"
heeft hij juist weer in de cel id het aantal records dat ik heb in de database heb en de rest geeft hij lege cellen weer tot aan de cel waar edit staat.
volgende fout meldingen verschijnen.
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 12
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 13
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 14
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 15.
wat doe ik verkeerd?
hier onder de code die wou gebruiken om in tabel weer te geven
Wie kan mij op het juist spoor zetten?
Waar kan ik uitleg vinden over de php7 en het gebruik ervan.
op voorhand bedankt voor de hulp
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
include_once('db.php');
$res = mysqli_query($conn,"SELECT * FROM openingsuur");
?>
<h1> Openingsuren ..</h1><br />
<?php
while($row= mysqli_fetch_array($res))
echo "$row[id] $row[dag] $row[open] $row[openu] $row[openu] <a href='edit.php?edit=$row[id]'>edit<br /><br /></A>";
$id = $row['id'];
$dag = $row['dag'];
$open = $row['open'];
$openu = $row['openu'];
$sluitu = $row['sluitu'];
echo $dag;
?>
<TABLE BORDER="1">
<TR>
<TD WIDTH="30"><?php echo $id ;?></TD>
<TD><?php echo $dag ;?></TD>
<TD><?php echo $open ;?></TD>
<TD><?php echo $openu ;?></TD>
<TD><?php echo $sluitu ;?></TD>
<TD><a href='edit.php?edit=$row[id]'>edit<br /><br /></A> </TD>
</TR>
</TABLE>
Gewijzigd op 06/10/2020 19:35:47 door Pascal vanholder
mijn excuus maar zal eens moeten zien hoe ik dat onder code tags moet zetten.
is mijn eerst keer dat ik iets post
Toevoeging op 06/10/2020 19:26:17:
de foutmeldingen zijn deze
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 12
//Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 13
//Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 14
//Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\kring\admin_a\openingsuur.php on line 15
Verder probeer je $row te benaderen met constanten. Gebruik $row['accolades'].
constante. Vroeger viel PHP nog terug op een type-herkenning als het geen constante was, maar nu is daar een eind aan gekomen.
Als je het helemaal netjes wilt doen, en je ook netjes je variabelen buiten quotes wilt plaatsen:
Verder is de toekenning op lijn 13 t/m 17 onnodig, want waarom zou je variabelen kopiëren? Ze zijn immers toch al bekend ;-)?
Je gebruikt nu $row[id] $row[dag]. En id, dag etc worden niet als string gezien, maar als een Als je het helemaal netjes wilt doen, en je ook netjes je variabelen buiten quotes wilt plaatsen:
Code (php)
1
2
3
2
3
<?php
echo $row['id']." ".$row['dag']." ".$row['open']."<a href='edit.php?edit=".$row['id']."'>edit<br /><br /></a>";
?>
echo $row['id']." ".$row['dag']." ".$row['open']."<a href='edit.php?edit=".$row['id']."'>edit<br /><br /></a>";
?>
Verder is de toekenning op lijn 13 t/m 17 onnodig, want waarom zou je variabelen kopiëren? Ze zijn immers toch al bekend ;-)?
Gewijzigd op 06/10/2020 19:51:49 door - Ariën -
Volgende code gaf op deze manier wel mijn 7 records weer die in de database staat.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
include_once('db.php');
$res = mysqli_query($conn,"SELECT * FROM openingsuur");
?>
<h1> Openingsuren ..</h1><br />
<?php
while($row= mysqli_fetch_array($res))
echo "$row[id] $row[dag] $row[open] $row[openu] $row[openu] <a href='edit.php?edit=$row[id]'>edit<br /><br /></A>";
?>
en dit zonder de foutmelding, maar dit geeft het weer zonder enige opmaak, vandaar dat ik mijn gegevens wil weergeven in een tabel voor enige opmaak te hebben maar daar loopt het mis. op dat moment heb ik de regel verwijderd waar ik het ga uitlezen en is het de rest van de code die ik gebruik.
Code (php)
1
echo "$row[id] $row[dag] $row[open] $row[openu] $row[openu] <a href='edit.php?edit=$row[id]'>edit<br /><br /></A>";
De enigste 2 cellen waar iets in staat op dat moment is deze van ID voor mij de getelde records van de database daar er 7 records instaan in mysql en de edit in de laatste cel.
die regel heb ik juist als test gebruikt om te zien of de gegevens kon weergeven worden op de php pagina.
Code (php)
1
[echo "$row[id] $row[dag] $row[open] $row[openu] $row[openu] <a href='edit.php?edit=$row[id]'>edit<br /><br /></A>";
Gewijzigd op 06/10/2020 20:22:53 door pascal vanholder
De variabele $row['id'] (ja, met quotes) in je link hoort wel binnen PHP-tags en de echo.
Gewijzigd op 06/10/2020 20:30:34 door - Ariën -
Tip:
<table>
<tr><th>titels</th></tr>
>>>> while($row = ....)
>>>> { echo '<tr><td>'.$row['xxx'].'</td></tr>';
>>>> }
</table>
Op dit moment haal je met het while-statement weliswaar alle records op, maar omdat je hiervoor dezelfde variabelen gebruikt houd je uiteindelijk alleen de waarden over van de laatste dag omdat voorgaande waarden elke stap van de while-loop overschreven worden.
Het zal dus inderdaad zoiets moeten worden zoals @SanThe voorstelt.
Gewijzigd op 06/10/2020 22:03:37 door Thomas van den Heuvel
Bedankt voor de hulp en het geduld, ik denk dat er vooral een misverstand was van mijne kant.
ik heb er het volgende van gemaakt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include_once('db.php');
$res = mysqli_query($conn,"SELECT * FROM openingsuur");
?>
<h1>openingsuur</h1>
<br />
<table BORDER="1">
<tr><th>id</th><th>dag</th><th>open/gesloten</th><th>openingsuur</th><th>sluitingsuur</th></tr>
<?php
while($row= mysqli_fetch_array($res))
{
echo '<tr><td>'.$row['id'].'</td>';
echo '<td>'.$row['dag'].'</td>';
echo '<td>'.$row['open'].'</td>';
echo '<td>'.$row['openu'].'</td>';
echo '<td>'.$row['sluitu'].'</td>';}?>
</tr></table>
include_once('db.php');
$res = mysqli_query($conn,"SELECT * FROM openingsuur");
?>
<h1>openingsuur</h1>
<br />
<table BORDER="1">
<tr><th>id</th><th>dag</th><th>open/gesloten</th><th>openingsuur</th><th>sluitingsuur</th></tr>
<?php
while($row= mysqli_fetch_array($res))
{
echo '<tr><td>'.$row['id'].'</td>';
echo '<td>'.$row['dag'].'</td>';
echo '<td>'.$row['open'].'</td>';
echo '<td>'.$row['openu'].'</td>';
echo '<td>'.$row['sluitu'].'</td>';}?>
</tr></table>
en dit werkt.
Moest er nog opmerkingen zijn, geef maar gerust door. Bedankt
Gewijzigd op 07/10/2020 01:23:39 door pascal vanholder
Pascal vanholder op 07/10/2020 01:14:47:
De </tr> moet in de while.
Code (php)
De </tr> moet in de while.
Gewijzigd op 07/10/2020 08:55:26 door - SanThe -
bedankt voor al jullie hulp, heb die laatste aanpassing gedaan.