array plus data uit databse halen
Hoi hoi,
ik had het volgende:
Nou heb ik daar het volgende van gemaakt:
Dus wil dat die mijn producten uit me database haalt..
maar krijg het niet voor elkaar.. steeds foutje..
doe ik iets fout of zie ik iets over het hoofd?
ik had het volgende:
Code (php)
Nou heb ik daar het volgende van gemaakt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$products = array();
//$products[1] = array("id"=>1,"name"=>"A Bar of Soap","price"=>2.00);
//$products[2] = array("id"=>2,"name"=>"Shampoo","price"=>4.80);
//$products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95);
if(isset($_GET['id'])){
echo $sql = "SELECT * FROM product WHERE id='".$_GET["id"]."'";
$result = mysql_query($sql);
while ($products = mysql_fetch_array($result))
{echo $products['bestand'];}
{echo $products['omschrijving'];}
{echo $products['prijs'];}
}else{
echo "foutje..";
}
?>
$products = array();
//$products[1] = array("id"=>1,"name"=>"A Bar of Soap","price"=>2.00);
//$products[2] = array("id"=>2,"name"=>"Shampoo","price"=>4.80);
//$products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95);
if(isset($_GET['id'])){
echo $sql = "SELECT * FROM product WHERE id='".$_GET["id"]."'";
$result = mysql_query($sql);
while ($products = mysql_fetch_array($result))
{echo $products['bestand'];}
{echo $products['omschrijving'];}
{echo $products['prijs'];}
}else{
echo "foutje..";
}
?>
Dus wil dat die mijn producten uit me database haalt..
maar krijg het niet voor elkaar.. steeds foutje..
doe ik iets fout of zie ik iets over het hoofd?
ini_set('display_errors', 1);
error_reporting(E_ALL);
zet dit even bovenaan je pagina en post je foutmelding.
error_reporting(E_ALL);
zet dit even bovenaan je pagina en post je foutmelding.
@Hugo
Dat betekend dus dat $_GET['id'] niet is geset, en dus niet bestaat. Als die wel bestond dan zou die 'foutje' niet weer geven. J emoet die pagina aanroepen, en daarachter ?id=1 neerzetten om product 1 weer te geven.
Daarnaast moet je wel die while lus aanpassen:
Je begint meteen na de afsluitende ) van de while met een { en die sluit je maar 1 maal af, als alles wat in die while lus moet komen is uitgevoerd. Dus dan ziet jou code er zo uit:
Dat betekend dus dat $_GET['id'] niet is geset, en dus niet bestaat. Als die wel bestond dan zou die 'foutje' niet weer geven. J emoet die pagina aanroepen, en daarachter ?id=1 neerzetten om product 1 weer te geven.
Daarnaast moet je wel die while lus aanpassen:
Je begint meteen na de afsluitende ) van de while met een { en die sluit je maar 1 maal af, als alles wat in die while lus moet komen is uitgevoerd. Dus dan ziet jou code er zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$products = array();
//$products[1] = array("id"=>1,"name"=>"A Bar of Soap","price"=>2.00);
//$products[2] = array("id"=>2,"name"=>"Shampoo","price"=>4.80);
//$products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95);
if(isset($_GET['id'])){
echo $sql = "SELECT * FROM product WHERE id='".$_GET["id"]."'";
$result = mysql_query($sql);
while ($products = mysql_fetch_array($result)){
echo $products['bestand'];
echo $products['omschrijving'];
echo $products['prijs'];
}
else{
echo "foutje..";
}
?>
$products = array();
//$products[1] = array("id"=>1,"name"=>"A Bar of Soap","price"=>2.00);
//$products[2] = array("id"=>2,"name"=>"Shampoo","price"=>4.80);
//$products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95);
if(isset($_GET['id'])){
echo $sql = "SELECT * FROM product WHERE id='".$_GET["id"]."'";
$result = mysql_query($sql);
while ($products = mysql_fetch_array($result)){
echo $products['bestand'];
echo $products['omschrijving'];
echo $products['prijs'];
}
else{
echo "foutje..";
}
?>
echo $sql = "SELECT * FROM.........
echo?
echo?
@robert
doe t dan gelijk helemaal goed...
id is numeriek (iig 99%, vrij dom om t niet te doen), dus ctype_digit() over get id heen halen. (tegen injection)
En je veld in de db auto_increment zetten en die single quotes weghalen om die get in je query.
doe t dan gelijk helemaal goed...
id is numeriek (iig 99%, vrij dom om t niet te doen), dus ctype_digit() over get id heen halen. (tegen injection)
En je veld in de db auto_increment zetten en die single quotes weghalen om die get in je query.




