hulp gevraagd bij een opdracht
Pagina: « vorige 1 2 3 4 volgende »
Dit > $data->speler[$i]->s_naam
Moet zijn > $data->speler[$i]->spelervoornaam
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$query =
"INSERT INTO speler
(s_id, s_naam, s_tussenvoegsel, s_achternaam)
VALUES(:s_id, :s_naam, :s_tussenvoegsel, :s_achternaam);";
$statement = $connect->prepare($query);
for($i = 0; $i < count($data); $i++)
{
$statement->execute(
array(
':s_naam' => $data->aanmelding[$i]->spelervoornaam,
':s_tussenvoegsel' => $data->aanmelding[$i]->spelertussenvoegsel,
':s_achternaam' => $data->aanmelding[$i]->spelerachternaam
)
);
?>
$query =
"INSERT INTO speler
(s_id, s_naam, s_tussenvoegsel, s_achternaam)
VALUES(:s_id, :s_naam, :s_tussenvoegsel, :s_achternaam);";
$statement = $connect->prepare($query);
for($i = 0; $i < count($data); $i++)
{
$statement->execute(
array(
':s_naam' => $data->aanmelding[$i]->spelervoornaam,
':s_tussenvoegsel' => $data->aanmelding[$i]->spelertussenvoegsel,
':s_achternaam' => $data->aanmelding[$i]->spelerachternaam
)
);
?>
Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 11/01/2020 18:47:24 door - Ariën -
en
Weg.
Die veldnaam komt niet voor in de array daarna.
ID is waarschijnlijk autoincrenent.
dus die hoef je dan ook niet in de array te zetten?
Toevoeging op 11/01/2020 12:31:04:
Kan je niet net als Greta de planeet gaan redden?
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?xml version="1.0" standalone="true"?>
-<aanmeldingen>
-<aanmelding>
<spelervoornaam>Piet</spelervoornaam>
<spelerachternaam>Pietersen</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Mohammed</spelervoornaam>
<spelerachternaam>Oualiki</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Susan</spelervoornaam>
<spelerachternaam>Blankers</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
+<aanmelding>
-<aanmelding>
<spelervoornaam>Ali</spelervoornaam>
<spelerachternaam>Abdul</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Steven</spelervoornaam>
<spelerachternaam>Speelberg</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Maarten</spelervoornaam>
<spelerachternaam>Leest</spelerachternaam>
<spelertussenvoegsels>van</spelertussenvoegsels>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Anton</spelervoornaam>
<spelerachternaam>Teunnissen</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Petra</spelervoornaam>
<spelerachternaam>Jansen</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Peter</spelervoornaam>
<spelerachternaam>Kapteijns</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Esra</spelervoornaam>
<spelerachternaam>Elha</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
</aanmeldingen>
-<aanmeldingen>
-<aanmelding>
<spelervoornaam>Piet</spelervoornaam>
<spelerachternaam>Pietersen</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Mohammed</spelervoornaam>
<spelerachternaam>Oualiki</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Susan</spelervoornaam>
<spelerachternaam>Blankers</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
+<aanmelding>
-<aanmelding>
<spelervoornaam>Ali</spelervoornaam>
<spelerachternaam>Abdul</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Steven</spelervoornaam>
<spelerachternaam>Speelberg</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Maarten</spelervoornaam>
<spelerachternaam>Leest</spelerachternaam>
<spelertussenvoegsels>van</spelertussenvoegsels>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Anton</spelervoornaam>
<spelerachternaam>Teunnissen</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Petra</spelervoornaam>
<spelerachternaam>Jansen</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Peter</spelervoornaam>
<spelerachternaam>Kapteijns</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
-<aanmelding>
<spelervoornaam>Esra</spelervoornaam>
<spelerachternaam>Elha</spelerachternaam>
<spelertussenvoegsels/>
<schoolnaam>Koning Willem I College</schoolnaam>
</aanmelding>
</aanmeldingen>
Toevoeging op 11/01/2020 12:32:11:
dit is wat ik aan code heb, nu ik de id erbij heb gezet krijg ik deze melding: invalid parameters.
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
$data = simplexml_load_file($_FILES['file']['tmp_name']);
$connect = new PDO('mysql:host=localhost;dbname=tenniswedstrijden','root', '');
$query =
"INSERT INTO speler
(s_id, s_naam, s_tussenvoegsel, s_achternaam)
VALUES(:s_id, :spelervoornaam, :spelerachternaam, :spelertussenvoegsels)";
$statement = $connect->prepare($query);
for($i = 0; $i < count($data); $i++)
{
$statement->execute(
array(
'spelervoornaam' => $data->aanmelding[$i]->spelervoornaam,
':spelertussenvoegsels' => $data->aanmelding[$i]->spelertussenvoegsels,
':spelerachternaam' => $data->aanmelding[$i]->spelerachternaam
)
);
?>
$data = simplexml_load_file($_FILES['file']['tmp_name']);
$connect = new PDO('mysql:host=localhost;dbname=tenniswedstrijden','root', '');
$query =
"INSERT INTO speler
(s_id, s_naam, s_tussenvoegsel, s_achternaam)
VALUES(:s_id, :spelervoornaam, :spelerachternaam, :spelertussenvoegsels)";
$statement = $connect->prepare($query);
for($i = 0; $i < count($data); $i++)
{
$statement->execute(
array(
'spelervoornaam' => $data->aanmelding[$i]->spelervoornaam,
':spelertussenvoegsels' => $data->aanmelding[$i]->spelertussenvoegsels,
':spelerachternaam' => $data->aanmelding[$i]->spelerachternaam
)
);
?>
Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 11/01/2020 18:48:00 door - Ariën -
Zie de Veelgestelde Vragen.
dat doe ik op het einde, het gaat er mij om dat het nu eerst gaat werken en ik een document in mijn database krijg.
Nee, we zien liever duidelijke topics die aan de voorwaarden voldoen, als de forumcrew er om vraagt.
mijn volledige import.php code ziet er nu als volgt uit:
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
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
<?php
//import.php
sleep(3);
//stores error or succes message
$output = '';
//checkt of er een file geselecteerd is.
if(isset($_FILES['file']['name']) && $_FILES['file']['name'] != '')
{
$valid_extension = array('xml');
$file_data = explode('.', $_FILES['file']['name']);
$file_extension = end($file_data);
if(in_array($file_extension, $valid_extension))
{
$data = simplexml_load_file($_FILES['file']['tmp_name']);
// maakt connectie met database
$connect = new PDO('mysql:host=localhost;dbname=tenniswedstrijden','root', '');
//query voegt gegevens toe aan tabellen in database
$query =
"INSERT INTO speler
(s_naam, s_tussenvoegsel, s_achternaam)
VALUES(:spelervoornaam, :spelerachternaam, :spelertussenvoegsels)";
$statement = $connect->prepare($query);
for($i = 0; $i < count($data); $i++)
{
//values krijgen gegevens
$statement->execute(
array(
'spelervoornaam' => $data->aanmelding[$i]->spelervoornaam,
':spelertussenvoegsels' => $data->aanmelding[$i]->spelertussenvoegsels,
':spelerachternaam' => $data->aanmelding[$i]->spelerachternaam,
)
);
}
// laat zien als goede file gekozen is
$result = $statement->fetchAll();
if(isset($result))
{
$output = '<div class="alert alert-success">Import Data Done</div>';
}
}
//laat zien als foutieve/geen xml file gekozen is
else
{
$output = '<div class="alert alert-warning">Invalid File</div>';
}
}
else
{
$output = '<div class="alert alert-warning">Please Select XML File</div>';
}
echo $output;
?>
//import.php
sleep(3);
//stores error or succes message
$output = '';
//checkt of er een file geselecteerd is.
if(isset($_FILES['file']['name']) && $_FILES['file']['name'] != '')
{
$valid_extension = array('xml');
$file_data = explode('.', $_FILES['file']['name']);
$file_extension = end($file_data);
if(in_array($file_extension, $valid_extension))
{
$data = simplexml_load_file($_FILES['file']['tmp_name']);
// maakt connectie met database
$connect = new PDO('mysql:host=localhost;dbname=tenniswedstrijden','root', '');
//query voegt gegevens toe aan tabellen in database
$query =
"INSERT INTO speler
(s_naam, s_tussenvoegsel, s_achternaam)
VALUES(:spelervoornaam, :spelerachternaam, :spelertussenvoegsels)";
$statement = $connect->prepare($query);
for($i = 0; $i < count($data); $i++)
{
//values krijgen gegevens
$statement->execute(
array(
'spelervoornaam' => $data->aanmelding[$i]->spelervoornaam,
':spelertussenvoegsels' => $data->aanmelding[$i]->spelertussenvoegsels,
':spelerachternaam' => $data->aanmelding[$i]->spelerachternaam,
)
);
}
// laat zien als goede file gekozen is
$result = $statement->fetchAll();
if(isset($result))
{
$output = '<div class="alert alert-success">Import Data Done</div>';
}
}
//laat zien als foutieve/geen xml file gekozen is
else
{
$output = '<div class="alert alert-warning">Invalid File</div>';
}
}
else
{
$output = '<div class="alert alert-warning">Please Select XML File</div>';
}
echo $output;
?>
Toevoeging op 11/01/2020 13:25:28:
ik heb even verder aan de code gewerkt en krijg nu de volgende foutmelding:
Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`tenniswedstrijden`.`speler`, CONSTRAINT `speler_ibfk_1` FOREIGN KEY (`sch_id`) REFERENCES `school` (`sch_id`)) in C:\xampp\htdocs\Tenniswedstrijden\startbootstrap-agency-gh-pages\php\import.php:36 Stack trace: #0 C:\xampp\htdocs\Tenniswedstrijden\startbootstrap-agency-gh-pages\php\import.php(36): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\Tenniswedstrijden\startbootstrap-agency-gh-pages\php\import.php on line 36
Je probeert een rij toe te voegen of te updaten waar de primary key leeg is of niet bestaat in de afhankelijke tabel.
speler:
s_id
s_naam
s_tussenvoegsel
s_achternaam
sch_id_fk
school:
sch_id
sch_naam
Ik denk dat je een Primairy Key mist.
dit is de code van de drop down:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<label> Selecteer een school </label>
<select name="school_name" id="school_name">
<?php foreach ($data as $row): ?>
<option><?=$row["sch_id"]?> <?=$row["sch_naam"]?></option>
<?php endforeach ?>
</select>
<select name="school_name" id="school_name">
<?php foreach ($data as $row): ?>
<option><?=$row["sch_id"]?> <?=$row["sch_naam"]?></option>
<?php endforeach ?>
</select>
Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 11/01/2020 18:47:04 door - Ariën -
Gewijzigd op 11/01/2020 16:16:53 door - Ariën -
daar zit voor mij op dit moment het probleem. hoe kun je het nu voor elkaar krijgen dat de query compleet klopt en de foutmelding van de foreign key weggaat? die foutmelding komt dus door het feit dat de sch_id_fk gekoppeld moet zijn met sch_id in de query
Is PDO een verplichting?
Ikzelf gebruik namelijk de object-georiënteerde versie van MySQLi, en deze is (persoonlijk gezien) makkelijker in gebruik. Uiteraard wel zolang je de invoer escaped met mysqli_real_escape_string().
Gewijzigd op 11/01/2020 17:53:59 door - Ariën -
Ja, jammer genoeg moeten wij dit zo doen. Met mijn database is volgens mijn mentor niks mis, volgens hem gaat het over de FK in de query. Zelf heb ik geen idee hoe ik dit op moet lossen.
Controleer dat even na in phpMyAdmin, HeidiSQL, of wat je maar gebruikt om je database op te zetten.
Laat anders even een structuurdump van de bewuste tabellen zien (tussen code-tags)
Ik ben benieuwd hoe het afgelopen is, en tot hoever het gelukt is.