Overzicht van winkels
Ik moet voor een school opdrachtje (huiswerk) even het volgende doen: ik moet uit een database de naam, adres, plaats en telefoonnummers van een aantal winkels in beeld tonen. Het lukte met andere dingen, de manier waarop ik het doe, maar nu niet omdat er meerde rows zijn.
Bij "winkel" staan nu de volgende rows (is dit het goede woord hiervoor?):
Wcode, Naam, Adres, Plaats en Telefoonnr.
Dit is mijn code:
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
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
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Winkels | Firstchoice</title>
<style type="text/css">
#winkels {
width: 200px;
position: absolute;
margin: 0px;
}
</style>
</head>
<body>
<div id="winkels">
<?php
$post=("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result) or die (mysql_error());)
{
echo $row['post'];
}
?>
</div>
</body>
</html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Winkels | Firstchoice</title>
<style type="text/css">
#winkels {
width: 200px;
position: absolute;
margin: 0px;
}
</style>
</head>
<body>
<div id="winkels">
<?php
$post=("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result) or die (mysql_error());)
{
echo $row['post'];
}
?>
</div>
</body>
</html>
Connectie met de database gaat goed, alleen krijg ik deze error:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in locatie on line 29
Lijn 29 is daar waar nu de
Code (php)
1
2
3
4
2
3
4
<?php tag staat (ik heb de connectie script even weggehaald om het overzichtelijker voor jullie te maken. Waarom werkt mijn while loop niet?
Mvg,
Piet
Mvg,
Piet
Gewijzigd op 13/05/2012 16:44:13 door Piet Jansen
Bouw nette foutafhandeling in.
Toevoeging op 13/05/2012 16:58:58:
Ik heb nu dit:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$post=("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result))
{
echo $row['post'].'<br />';
}
?>
$post=("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result))
{
echo $row['post'].'<br />';
}
?>
Nu krijg ik deze error 16 keer onder elkaar, dat is evenveel als het aantal records in de row:
Notice: Undefined index: post in D:\Program Files\blabla\index.php on line 34. Lijn 34 is nu het stuk waar 'echo $row['post'].'<br />';' staat.
Je echo zal ook toen niet gelukt zijn, als je het op dezelfde manier hebt gedaan.
Het is een opdracht voor school? Zie helaas vaker dat daar voorbij gegaan wordt aan o.a. foutafhandeling. Wat je foutmelding betekent, kun je vinden met Google.
Hint: waar moet $row de waarde post vandaan halen? Die heb je niet in je database staan.
Piet Jansen op 13/05/2012 16:44:48:
Wat bedoel je met fouthandeling?
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/
je echo'd de tabelname ipv de rijen die je nodig hebt. en bouw goede foutafhandeling in ( dus niet or die )
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$post=("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result))
{
echo $row['post'].'<br />';
}
?>
$post=("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result))
{
echo $row['post'].'<br />';
}
?>
Wat gaat hier mis? Op regel 2 mist er iets zodat hij niets ophaalt dus wat gebeurt er nu
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$post= mysql_query("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result))
{
echo $row['post'].'<br />';
}
?>
$post= mysql_query("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
$result = mysql_query($post);
while($row = mysql_fetch_assoc($result))
{
echo $row['post'].'<br />';
}
?>
Jij gaat nu een query op een resultaat van een query uitvoeren.
moet worden
en zo verder
Ja idd, hij kan gewoon heel de $result weglaten en de $result van de assoc gewoon vervangen door $post
@Niels
Echter zal het ook daar fout gaan aangezien $row['post'] niet bestaat, hij vraagt nergens deze velden op in zijn query.
Dit zou moeten werken zoals je het wilt.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$post= mysql_query("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
while($row = mysql_fetch_assoc($post))
{
echo $row['Wcode'].' '.$row['Naam'].' '.$row['Adres'].' '.$row['PLaats'].' '$row['Telefoonnr'].'<br>';
}
?>
$post= mysql_query("SELECT Wcode, Naam, Adres, Plaats, Telefoonnr FROM winkel");
while($row = mysql_fetch_assoc($post))
{
echo $row['Wcode'].' '.$row['Naam'].' '.$row['Adres'].' '.$row['PLaats'].' '$row['Telefoonnr'].'<br>';
}
?>
Voor de nette opmaak zul je css/div of table/css moeten gebruiken.
Gewijzigd op 15/05/2012 13:20:02 door Chris PHP