Van xml naar DB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
include 'config.php';
// Produckt feeds ophalen van Castlegames.nl op tradetracker.nl
$console = 'playstation portable'; // playstation portable, playstation 2, playstation 3, nintendo ds, nintendo wii, xbox 360,
$XmlLocatie = "http://pf.tradetracker.net/?aid=14245&type=xml&encoding=utf-8&fid=936&categoryType=2&additionalType=2"; //XML link
// Database legen
//$delDB = mysql_query("TRUNCATE spellen");
$Xml = simplexml_load_file($XmlLocatie);
if ( $Xml === false )
{
exit( 'XML bestand: ' . $XmlLocatie . ' Kan niet geopend worden.');
}
else
{
foreach($Xml->product as $items)
{
$naam = $items->name;
$prijs = $items->price;
$link = $items->productURL;
$foto = $items->imageURL;
$categorie = $items->categories->category;
//echo $naam.'<br />';
//echo $prijs.'<br />';
//echo $link.'<br />';
//echo $foto.'<br />';
//echo $categorie.'<br />';
//echo '<br /><br />Addits:<br /><br />';
foreach($Xml->product->additional->field as $key => $field)
{
//echo $field['name'].' - '.$field.'<br />';
if($field['name'] == 'productID'){$produktid = $field;}
if($field['name'] == 'verzendkosten'){$verzendkosten = $field;}
}
//echo $produktid.'<br />';
//echo $verzendkosten.'<br />';
if($categorie == $console)
{
$sql_insert = "INSERT INTO spellen
(produktid, naam, prijs, link, foto, categorie, verzendkosten)
VALUES
('$produktid', '$naam', '$prijs', '$link', '$foto', '$categorie', '$verzendkosten')";
$result = mysql_query($sql_insert);
}
}
unset($items);
echo 'invoer gelukt';
}
?>
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
include 'config.php';
// Produckt feeds ophalen van Castlegames.nl op tradetracker.nl
$console = 'playstation portable'; // playstation portable, playstation 2, playstation 3, nintendo ds, nintendo wii, xbox 360,
$XmlLocatie = "http://pf.tradetracker.net/?aid=14245&type=xml&encoding=utf-8&fid=936&categoryType=2&additionalType=2"; //XML link
// Database legen
//$delDB = mysql_query("TRUNCATE spellen");
$Xml = simplexml_load_file($XmlLocatie);
if ( $Xml === false )
{
exit( 'XML bestand: ' . $XmlLocatie . ' Kan niet geopend worden.');
}
else
{
foreach($Xml->product as $items)
{
$naam = $items->name;
$prijs = $items->price;
$link = $items->productURL;
$foto = $items->imageURL;
$categorie = $items->categories->category;
//echo $naam.'<br />';
//echo $prijs.'<br />';
//echo $link.'<br />';
//echo $foto.'<br />';
//echo $categorie.'<br />';
//echo '<br /><br />Addits:<br /><br />';
foreach($Xml->product->additional->field as $key => $field)
{
//echo $field['name'].' - '.$field.'<br />';
if($field['name'] == 'productID'){$produktid = $field;}
if($field['name'] == 'verzendkosten'){$verzendkosten = $field;}
}
//echo $produktid.'<br />';
//echo $verzendkosten.'<br />';
if($categorie == $console)
{
$sql_insert = "INSERT INTO spellen
(produktid, naam, prijs, link, foto, categorie, verzendkosten)
VALUES
('$produktid', '$naam', '$prijs', '$link', '$foto', '$categorie', '$verzendkosten')";
$result = mysql_query($sql_insert);
}
}
unset($items);
echo 'invoer gelukt';
}
?>
Als ik alles echo dat is alles goed maar nu wil ik het opslaan in een DB maar de produktid en verzendkosten krijg ik niet in mijn database, Hoe kan ik dit oplossen?
Waar is de sql foutafhandeling?
Waar zie jij een variabele binnen een quote? En met de sql ga ik later mee verder als ik de rest werkend heb.
En de juiste logica kan je ontdekken door de XML te bestuderen en je code er nog eens goed op na te kijken....
Je gokt er eigenlijk op dat het laatste additionele gegevens van produkt produkt en verzendkosten opleveren.....
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sql_insert = "INSERT INTO spellen
(produktid, naam, prijs, link, foto, categorie, verzendkosten)
VALUES
('$produktid', '$naam', '$prijs', '$link', '$foto', '$categorie', '$verzendkosten')";
?>
$sql_insert = "INSERT INTO spellen
(produktid, naam, prijs, link, foto, categorie, verzendkosten)
VALUES
('$produktid', '$naam', '$prijs', '$link', '$foto', '$categorie', '$verzendkosten')";
?>
en wat dacht je van bescherming tegen SQL-Injection?
(produktid, naam, prijs, link, foto, categorie, verzendkosten)
VALUES
('$produktid', '$naam', '$prijs', '$link', '$foto', '$categorie', '$verzendkosten')";
Je gaat later pas met de sql verder, maar je wilt het nu in de database hebben. Hoe wil je dat voor elkaar krijgen?