Geachte forumleden,
Ik heb een probleem met mijn website. Ik moet namelijk een opdracht maken voor school, maar hier kom ik niet helemaal uit. Het hoeft geen hoogstaande website te worden en ik heb er ook niet heel veel verstand van, dus dan weten jullie dat alvast.
In ieder geval is het als volgt: Ik moet een website maken voor een sportdag voor een school. Ik gebruik hiervoor PHP en databases (MySQL). De situatie is als volgt: de gebruiker voert op de website zijn persoonlijke gegevens in (naam, email, etc.) en ook de activiteit die hij wilt doen (voetbal, hockey, etc.). Vervolgens worden deze gegevens naar de database gestuurd. Handig misschien om even de opdracht te kunnen zien: http://img297.imageshack.us/img297/9553/opdrachtict.jpg
Vervolgens zijn er een aantal aspecten buiten beschouwing gelaten, dit zijn: de tijden en max/min aantal personen per activiteit. Als het nu eenmaal werkt, dan voeg ik dit later wel toe. De database ziet er als het goed is uit als aangegeven op de link. ID_naw en ID_act zijn 2 primaire keys. Ook de tabel koppeling heeft de ID_naw en ID_act , ook deze zijn 2 primaire keys. (Zoals ook aangegeven in de opdracht.) Vervolgens is de ID_naw een autoincrement. Hij moet telkens namelijk één stap verhoogt worden. Te beginnen bij 0.
De php codes die ik hiervoor gebruik zijn:
Zoals te zien is, include hij een ander PHP script. Dat is deze:
Misschien is het ook handig om te zien hoe het HTML script eruit ziet (dus wat hij aangeeft op de website pagina zelf): heb hem even in PHP gezet, want de HTML tag deed het niet.
Echter nu dan uiteindelijk mijn probleem:
De gebruiker voert zijn gegevens in, de voornaam, tussenvoegsel, achternaam, email en klas worden allemaal keurig in de website ingevoerd. Echter de activiteit komt niet in de database te staan. Aangezien 'activiteit' in een andere tabel staat, moet ik volgens mij ook een nieuwe query aanmaken. Query 2 dus (toch???) (ID_naw hoeft de gebruiker uiteraard niet in te voeren, dit staat op auto incredement)
Echter dit werkt allemaal niet... Ik krijg het gewoon niet voor elkaar. Daarom hoop ik dat jullie mij zouden kunnen helpen of tips geven. Ik ben bereid er best wat moeite voor te doen. Maar ik probeer dit al zolang dat ik er een beetje hopeloos van wordt.
Ik hoop dat jullie mij zouden kunnen helpen,
Bij voorbaat dank,
Kevin
Ik heb een probleem met mijn website. Ik moet namelijk een opdracht maken voor school, maar hier kom ik niet helemaal uit. Het hoeft geen hoogstaande website te worden en ik heb er ook niet heel veel verstand van, dus dan weten jullie dat alvast.
In ieder geval is het als volgt: Ik moet een website maken voor een sportdag voor een school. Ik gebruik hiervoor PHP en databases (MySQL). De situatie is als volgt: de gebruiker voert op de website zijn persoonlijke gegevens in (naam, email, etc.) en ook de activiteit die hij wilt doen (voetbal, hockey, etc.). Vervolgens worden deze gegevens naar de database gestuurd. Handig misschien om even de opdracht te kunnen zien: http://img297.imageshack.us/img297/9553/opdrachtict.jpg
Vervolgens zijn er een aantal aspecten buiten beschouwing gelaten, dit zijn: de tijden en max/min aantal personen per activiteit. Als het nu eenmaal werkt, dan voeg ik dit later wel toe. De database ziet er als het goed is uit als aangegeven op de link. ID_naw en ID_act zijn 2 primaire keys. Ook de tabel koppeling heeft de ID_naw en ID_act , ook deze zijn 2 primaire keys. (Zoals ook aangegeven in de opdracht.) Vervolgens is de ID_naw een autoincrement. Hij moet telkens namelijk één stap verhoogt worden. Te beginnen bij 0.
De php codes die ik hiervoor gebruik zijn:
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
| <?php include "../sql/sql.php"; $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("sportdag", $con); $voornaam = $_GET["voornaam"]; $tussenvoegsel = $_GET["tussenvoegsel"]; $achternaam = $_GET["achternaam"]; $to = $_GET["email"]; $klas = $_GET["klas"]; $activiteit = $_GET["activiteit"]; $query="INSERT INTO naw VALUES (ID_naw,'$voornaam','$tussenvoegsel','$achternaam','$to','$klas')"; $query2="INSERT INTO activiteiten VALUES (ID_act, '$activiteit')"; // SELECT * FROM `naw` WHERE ID_naw= .. // Uitleg SELECT met een sterretje selecteerd men alle kolommen, het is ook mogelijk maar enkele kolommen te doen, door simpelweg een komma te plaatsen. // Uitleg FROM uit welke tabel je de gegevens wilt halen. Dit geval dus de 'naw' tabel // Uitleg WHERE. Bijv. " WHERE City='Sandnes' " Om Sandnes moeten aanhalingstekens geplaatst worden, rond getallen niet! SQL_INSERT($query); ?> Bedankt voor het inschrijven voor de sportdag <?php echo $voornaam, " ", $tussenvoegsel, " ", $achternaam;?><br /> Er is een email verzonden naar <?php echo $to, " ", $klas, " ",$activiteit ?> <?php //Email bevestiging $subject = "Inschrijving sportdag"; $message = "Beste $voornaam $tussenvoegsel $achternaam \n Je krijgt deze e-mail omdat je hebt ingeschreven voor de Sportdag \n Je hebt je ingeschreven voor $activiteit"; $from = "someonelse@example.com"; $headers = "From: $from"; ?> |
Zoals te zien is, include hij een ander PHP script. Dat is deze:
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
| <?php function SQL_INSERT($query) { $result = SQL_02($query); return $result; } function SQL_DELETE($query) { $result = SQL_02($query); return $result; } function SQL_UPDATE($query) { $result = SQL_02($query); return $result; } function SQL_SELECT($query) { $result = SQL_02($query); $aantal = SQL_03_aantal_rijen($result); echo "<BR>"."aantal rijen ".$aantal; if($aantal > 0) { for($i = 0 ; $i < $aantal ; $i++) { $regel[] = SQL_04_selectie($result,$i); } } return $regel; } function SQL_02($query) { $server = "localhost"; $user = "root"; $password = ""; $databasenaam = "sportdag"; mysql_connect($server,$user,$password); $db = mysql_select_db($databasenaam) or die("database $databasenaam niet bereikbaar."); $result = mysql_query($query) or die("query is niet uit te voeren"); return $result; } function SQL_03_aantal_rijen($result) { $r = mysql_num_rows($result); return $r; } function SQL_04_selectie($result,$i) { $r = mysql_fetch_array($result); return $r; } ?> |
Misschien is het ook handig om te zien hoe het HTML script eruit ziet (dus wat hij aangeeft op de website pagina zelf): heb hem even in PHP gezet, want de HTML tag deed het niet.
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
| <form action="php/inschrijf.php" method="get"> <table border="0"> <tr> <td>Voornaam : </td><td><input type="text" name="voornaam" /></td><br/> </tr> <tr> <td>Tussenvoegsel: </td><td><input type="text" name="tussenvoegsel" /></td><br/> </tr> <tr> <td>Achtervoegsel: </td><td><input type="text" name="achternaam" /></td><br/> </tr> <tr> <td>Email: </td><td><input type="text" name="email" /></td><br/> </tr> <tr> <td>Klas: </td><td><input type="text" name="klas" /></td><br/> </tr> <tr> <td>Activiteit: </td> <td><select name="Activiteit" size="1"> <option value="Voetbal">Voetbal</option> <option value="Hockey">Hockey</option> <option value="Tennis">Tennis</option> <option value="Basketbal">Basketbal</option> </select></td> </tr> </table> <input type="submit" /> </form> |
Echter nu dan uiteindelijk mijn probleem:
De gebruiker voert zijn gegevens in, de voornaam, tussenvoegsel, achternaam, email en klas worden allemaal keurig in de website ingevoerd. Echter de activiteit komt niet in de database te staan. Aangezien 'activiteit' in een andere tabel staat, moet ik volgens mij ook een nieuwe query aanmaken. Query 2 dus (toch???) (ID_naw hoeft de gebruiker uiteraard niet in te voeren, dit staat op auto incredement)
Echter dit werkt allemaal niet... Ik krijg het gewoon niet voor elkaar. Daarom hoop ik dat jullie mij zouden kunnen helpen of tips geven. Ik ben bereid er best wat moeite voor te doen. Maar ik probeer dit al zolang dat ik er een beetje hopeloos van wordt.
Ik hoop dat jullie mij zouden kunnen helpen,
Bij voorbaat dank,
Kevin