hulp gevraagd bij een opdracht

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 volgende »

Adoptive Solution

Adoptive Solution

11/01/2020 12:04:42
Quote Anchor link
Volgens mij komen de namen in regels 25-28 niet overeen met de namen in het xml bestand.

Dit > $data->speler[$i]->s_naam

Moet zijn > $data->speler[$i]->spelervoornaam
 
PHP hulp

PHP hulp

04/12/2024 09:35:16
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 12:09:20
Quote Anchor link
op dit moment is het gelukt om alle foutmeldingen weg te halen, helaas worden deze gegevens nog niet toegevoegd in de database. Hoe kun je dit oplossen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
    )
   );

?>

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.
Gewijzigd op 11/01/2020 18:47:24 door - Ariën -
 
Adoptive Solution

Adoptive Solution

11/01/2020 12:28:46
Quote Anchor link
Haal bij de INSERT en VALUES
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
s_id,

en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
:s_id,

Weg.

Die veldnaam komt niet voor in de array daarna.
ID is waarschijnlijk autoincrenent.
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 12:29:34
Quote Anchor link
dus die hoef je dan ook niet in de array te zetten?
 
Adoptive Solution

Adoptive Solution

11/01/2020 12:30:23
Quote Anchor link
En in een eerdere versie van de code komt ook een insert van de schoolnaam voor.

Toevoeging op 11/01/2020 12:31:04:

Kan je niet net als Greta de planeet gaan redden?
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 12:31:07
Quote Anchor link
<b>Dit is het xml bestand</b>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>



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)
PHP script in nieuw venster Selecteer het PHP script
1
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
    )
   );

?>

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.
Gewijzigd op 11/01/2020 18:48:00 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

11/01/2020 12:35:56
Quote Anchor link
Gebruik a.u.b. codetags om je code.
Zie de Veelgestelde Vragen.
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 12:36:48
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

11/01/2020 12:44:43
Quote Anchor link
Nee, we zien liever duidelijke topics die aan de voorwaarden voldoen, als de forumcrew er om vraagt.
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 13:05:40
Quote Anchor link
sorry ik probeer me aan de regels te houden, ik zie nu ook dat dit wel helpt.
mijn volledige import.php code ziet er nu als volgt uit:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;

?>



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
 
- Ariën  -
Beheerder

- Ariën -

11/01/2020 14:01:03
Quote Anchor link
Je probeert een rij toe te voegen of te updaten waar de primary key leeg is of niet bestaat in de afhankelijke tabel.
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 14:05:27
Quote Anchor link
mijn twee tabellen bestaan uit de volgende gegevens, ik heb het gevoel alsof hier iets fout gaat met de relaties.. maar zou niet zo goed weten wat.

speler:
s_id
s_naam
s_tussenvoegsel
s_achternaam
sch_id_fk

school:
sch_id
sch_naam
 
- Ariën  -
Beheerder

- Ariën -

11/01/2020 14:44:55
Quote Anchor link
Ik denk dat je een Primairy Key mist.
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 15:37:24
Quote Anchor link
ik ga het als volgt doen. het is de bedoeling dat de gebruiker nu een school kiest via een dropdonw. mijn vraag is nu hoe ik dit school id kan koppelen en of deze gekoppeld moet worden aan de school id fk.

dit is de code van de drop down:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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.
Gewijzigd op 11/01/2020 18:47:04 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

11/01/2020 16:16:20
Quote Anchor link
Met het genereren van de dropdown is weinig mis. Je moet wel de relaties in je query goed leggen. Tevens zou je sch_id in de value van je option horen.
Gewijzigd op 11/01/2020 16:16:53 door - Ariën -
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 16:19:47
Quote Anchor link
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
 
- Ariën  -
Beheerder

- Ariën -

11/01/2020 17:53:45
Quote Anchor link
Volgens mij mist er ergens een Primairy key één van je velden.

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 -
 
Jessy Lieshout

Jessy Lieshout

11/01/2020 18:28:28
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

11/01/2020 18:39:09
Quote Anchor link
Ik denk dat er een PK-key op één van je velden mist.
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)
 
- Ariën  -
Beheerder

- Ariën -

13/01/2020 09:30:51
Quote Anchor link
Ik ben benieuwd hoe het afgelopen is, en tot hoever het gelukt is.
 

Pagina: « vorige 1 2 3 4 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.