Je eigen boek terug vinden - Vraagje
Array
(
[login] => yes
)
Hier zit dus geen ID tussen...
Een `member` maakt een account aan -> `member` krijgt een mail -> Gegevens van `member` worden opgeslagen in de tabel `members`.
Een `member` logt in -> Controle naar de tabel (in de database) `members`. -> Controle gelukt -> Pagina waarop iemand een boek kan toevoegen
-> Controle mislukt -> Foutmelding
Een `member` voegt een boek toe -> Boek wordt opgeslagen in de tabel `boeken`.
Nu wil ik dus, dat het boek achter de naam van de persoon komt te staan. Wat doe ik nu fout/wat mis ik?
Wat ik dus bedoel, is dat er nu een account in de 'members' tabel komt te staan, en een boek in de 'boeken' tabel. Alleen de koppeltabel werkt nu dus nog niet. Waarom niet?
Dus een member kan meerdere boeken toevoegen, dan is vraag of hetzelfde boek ook nog door andere members kan worden toegevoegd. Is dat niet zo heb je een één op meer relatie en kan je volstaan met een kolom member_id op te nemen in de boeken tabel.
Anders heb je een meer op meer relatie en heb je de koppeltabel nodig.
Dan gaat het hier om de meer op meer relatie. Meerdere mensen kunnen hetzelfde boek hebben. De koppeltabel heb ik, maar er wordt niks opgeslagen daarin...
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$result = $db->query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = $db->query("INSERT INTO members_boeken (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
}
?>
$result = $db->query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = $db->query("INSERT INTO members_boeken (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
}
?>
Misschien wat kort door de bocht maar om je op weg te helpen
Gewijzigd op 04/07/2013 11:37:49 door Ger van Steenderen
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$result = $datb->query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = $db->query("INSERT INTO user_book (user_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
}
?>
$result = $datb->query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = $db->query("INSERT INTO user_book (user_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
}
?>
Echter zit er een fout in
Zou je die regel kunnen uitleggen, waar die voor staat? Wellicht is een naam anders bij mij.
In de eerste query voeg je het boek toe aan de tabel boeken. Er vanuit gaande de boek_id een auto increment kolom is, kan je de id van het laatst toevoegde boek in een volgende query opvragen met LAST_INSERT_ID()
Dit werkt natuurlijk alleen als je een member een nieuw boek heeft toegevoegd.
Parse error: syntax error, unexpected T_STRING in /home/a4692586/public_html/login_succes/add2.php on line 127
Gebruik je PDO of MySqli?
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<?PHP
session_start();
if($_SESSION['login'] != 'yes') die('Je moet eerst inloggen! <a href="http://kennemercollegeboeken.hostzi.com/login.php">Log in</a>.<br> Nog geen account: <a href="http://kennemercollegeboeken.hostzi.com/register.php"> Maak er een aan!</a>');
?>
<head><title>Kennemercollege Boeken</title></head>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />
</head>
<body>
<div id="wrapper">
<header id="header">
<center><IMG src="Naamloos5.png" height="75" width="500"></center>
</header><!-- #header-->
<section id="middle">
<div id="container">
<div id="content">
<?php
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
// E-mailadres van de ontvanger
$mail_ontv = '[email protected]';
$onderwerp = 'Kennemercollegeboeken Boek toevoeging';
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// naam controle
if (empty($_POST['Titel']))
$naam_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['Schrijver'], FILTER_VALIDATE_EMAIL))
# $email_fout = 1;
// antiflood controle
if (!empty($_SESSION['antiflood']))
{
$seconde = 0; // 0 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
$tijd = time() - $_SESSION['antiflood'];
if($tijd < $seconde)
$antiflood = 1;
}
}
// Speciale checks voor naam en e-mailadres
// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['Titel']) || !empty($naam_fout) || empty($_POST['Schrijver']) || !empty($email_fout) || empty($_POST['Titel']) || empty($_POST['Schrijver']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo '<p>Uw naam is niet ingevuld.</p>';
elseif (!empty($email_fout))
echo '<p>Uw e-mailadres is niet juist.</p>';
elseif (!empty($antiflood))
echo '<p>U mag slechts één bericht per ' . $seconde . ' seconde versturen.</p>';
else
echo '<p>U bent uw naam, e-mailadres of wachtwoord vergeten in te vullen.</p>';
}
// HTML e-mail formlier
echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>
<fieldset><legend>Boek toevoegen</legend>
<label for="Titel">Titel:</label><br />
<input type="text" id="Titel" name="Titel" value="' . (isset($_POST['Titel']) ? htmlspecialchars($_POST['Titel']) : '') . '" /><br />
<label for="Schrijver">Schrijver:</label><br />
<input type="text" id="Schrijver" name="Schrijver" value="' . (isset($_POST['Schrijver']) ? htmlspecialchars($_POST['Schrijver']) : '') . '" /><br />
<input type="submit" name="submit" value=" Toevoegen! " />
</fieldset>
</p>
</form>';
}
// versturen naar
else
{
// set datum
$datum = date('d/m/Y H:i(worry)');
$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Regristratie Mail " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "Welkom op " . $_SERVER['HTTP_HOST'] . " . In deze e-mail vind je je account informatie. Bewaar deze goed, je krijgt deze één keer! \n";
$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Achternaam: " . htmlspecialchars($_POST['achternaam']) . "\n";
$inhoud_mail .= "Klas: " . htmlspecialchars($_POST['klas']) . "\n";
$inhoud_mail .= "Gebruikersnaam: " . htmlspecialchars($_POST['username']) . "\n";
$inhoud_mail .= "Wachtwoord: " . htmlspecialchars($_POST['password']) . "\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['email']) . "\n";
$inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
$inhoud_mail .= "Jouw Kennemercollegeboeken Team \n";
$inhoud_mail .= "===================================================\n\n";
// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
// ------
$host = "*"; // De host
$user = "*"; // De MySQL gebruikersnaam
$pass = "*"; // Het MySQL wachtwoord
$datb = "*"; // De database
mysql_connect($host, $user, $pass) or die ("Er kan geen verbinding worden gemaakt");
mysql_select_db($datb) or die ("Er kan geen verbinding worden gemaakt met de database");
$result = $datb->query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = $datb->query("INSERT INTO user_book (user_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
}
echo "Boek succesvol toegevoegd";
$headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
if (mail($mail_ontv, $onderwerp, $inhoud_mail, $headers))
{
// zorg ervoor dat dezelfde persoon niet kan spammen
$_SESSION['antiflood'] = time();
echo '<h1>Boek succesvol toegevoegd</h1>
<p><br>Je boek is toegevoegd aan de database.</p>';
}
else
{
echo '<h1>Boek toevoegen mislukt</h1>
<p><b>Onze excuses. Probeer het later opnieuw.</b></p>';
}
}
?>
</div><!-- #content-->
</div><!-- #container-->
<aside id="sideLeft">
<P STYLE="font-size: 12pt;"><h1>Home</h1>
<p> >><a href="http://kennemercollegeboeken.hostzi.com/login_succes/index.php">Beginpagina Ledenpaneel</a><<<br>
<P STYLE="font-size: 12pt;"><h1>Account</h1>
<a href="http://kennemercollegeboeken.hostzi.com/login_succes/add.php">Boek Toevoegen</a><br>
<a href="http://kennemercollegeboeken.hostzi.com/login_succes/news.php">Nieuws</a><br>
<a href="http://forum.kennemercollegeboeken.hostzi.com/phpBB3/">Forum</a><br>
<a href="http://kennemercollegeboeken.hostzi.com/login_succes/logout.php">Uitloggen</a><br></p>
<p style="font-size: 12pt;"><h1>Spelletjes</h1>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game1.php">Bounce Game</a> <br>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game2.php">Reactie Spel</a> <br>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game3.php">Raad het nummer</a><br>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game4.php">Zoek de Spion</a> <br></p>
</aside><!-- #sideLeft -->
</section><!-- #middle-->
</div><!-- #wrapper -->
<footer id="footer">
Kennemercollege Boeken 2013. Site made by <b>Frank Martens</b>
</footer><!-- #footer -->
</body>
</html>
session_start();
if($_SESSION['login'] != 'yes') die('Je moet eerst inloggen! <a href="http://kennemercollegeboeken.hostzi.com/login.php">Log in</a>.<br> Nog geen account: <a href="http://kennemercollegeboeken.hostzi.com/register.php"> Maak er een aan!</a>');
?>
<head><title>Kennemercollege Boeken</title></head>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />
</head>
<body>
<div id="wrapper">
<header id="header">
<center><IMG src="Naamloos5.png" height="75" width="500"></center>
</header><!-- #header-->
<section id="middle">
<div id="container">
<div id="content">
<?php
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
// E-mailadres van de ontvanger
$mail_ontv = '[email protected]';
$onderwerp = 'Kennemercollegeboeken Boek toevoeging';
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// naam controle
if (empty($_POST['Titel']))
$naam_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['Schrijver'], FILTER_VALIDATE_EMAIL))
# $email_fout = 1;
// antiflood controle
if (!empty($_SESSION['antiflood']))
{
$seconde = 0; // 0 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
$tijd = time() - $_SESSION['antiflood'];
if($tijd < $seconde)
$antiflood = 1;
}
}
// Speciale checks voor naam en e-mailadres
// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['Titel']) || !empty($naam_fout) || empty($_POST['Schrijver']) || !empty($email_fout) || empty($_POST['Titel']) || empty($_POST['Schrijver']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo '<p>Uw naam is niet ingevuld.</p>';
elseif (!empty($email_fout))
echo '<p>Uw e-mailadres is niet juist.</p>';
elseif (!empty($antiflood))
echo '<p>U mag slechts één bericht per ' . $seconde . ' seconde versturen.</p>';
else
echo '<p>U bent uw naam, e-mailadres of wachtwoord vergeten in te vullen.</p>';
}
// HTML e-mail formlier
echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>
<fieldset><legend>Boek toevoegen</legend>
<label for="Titel">Titel:</label><br />
<input type="text" id="Titel" name="Titel" value="' . (isset($_POST['Titel']) ? htmlspecialchars($_POST['Titel']) : '') . '" /><br />
<label for="Schrijver">Schrijver:</label><br />
<input type="text" id="Schrijver" name="Schrijver" value="' . (isset($_POST['Schrijver']) ? htmlspecialchars($_POST['Schrijver']) : '') . '" /><br />
<input type="submit" name="submit" value=" Toevoegen! " />
</fieldset>
</p>
</form>';
}
// versturen naar
else
{
// set datum
$datum = date('d/m/Y H:i(worry)');
$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Regristratie Mail " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "Welkom op " . $_SERVER['HTTP_HOST'] . " . In deze e-mail vind je je account informatie. Bewaar deze goed, je krijgt deze één keer! \n";
$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Achternaam: " . htmlspecialchars($_POST['achternaam']) . "\n";
$inhoud_mail .= "Klas: " . htmlspecialchars($_POST['klas']) . "\n";
$inhoud_mail .= "Gebruikersnaam: " . htmlspecialchars($_POST['username']) . "\n";
$inhoud_mail .= "Wachtwoord: " . htmlspecialchars($_POST['password']) . "\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['email']) . "\n";
$inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
$inhoud_mail .= "Jouw Kennemercollegeboeken Team \n";
$inhoud_mail .= "===================================================\n\n";
// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
// ------
$host = "*"; // De host
$user = "*"; // De MySQL gebruikersnaam
$pass = "*"; // Het MySQL wachtwoord
$datb = "*"; // De database
mysql_connect($host, $user, $pass) or die ("Er kan geen verbinding worden gemaakt");
mysql_select_db($datb) or die ("Er kan geen verbinding worden gemaakt met de database");
$result = $datb->query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = $datb->query("INSERT INTO user_book (user_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
}
echo "Boek succesvol toegevoegd";
$headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
if (mail($mail_ontv, $onderwerp, $inhoud_mail, $headers))
{
// zorg ervoor dat dezelfde persoon niet kan spammen
$_SESSION['antiflood'] = time();
echo '<h1>Boek succesvol toegevoegd</h1>
<p><br>Je boek is toegevoegd aan de database.</p>';
}
else
{
echo '<h1>Boek toevoegen mislukt</h1>
<p><b>Onze excuses. Probeer het later opnieuw.</b></p>';
}
}
?>
</div><!-- #content-->
</div><!-- #container-->
<aside id="sideLeft">
<P STYLE="font-size: 12pt;"><h1>Home</h1>
<p> >><a href="http://kennemercollegeboeken.hostzi.com/login_succes/index.php">Beginpagina Ledenpaneel</a><<<br>
<P STYLE="font-size: 12pt;"><h1>Account</h1>
<a href="http://kennemercollegeboeken.hostzi.com/login_succes/add.php">Boek Toevoegen</a><br>
<a href="http://kennemercollegeboeken.hostzi.com/login_succes/news.php">Nieuws</a><br>
<a href="http://forum.kennemercollegeboeken.hostzi.com/phpBB3/">Forum</a><br>
<a href="http://kennemercollegeboeken.hostzi.com/login_succes/logout.php">Uitloggen</a><br></p>
<p style="font-size: 12pt;"><h1>Spelletjes</h1>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game1.php">Bounce Game</a> <br>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game2.php">Reactie Spel</a> <br>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game3.php">Raad het nummer</a><br>
<a href="http://www.kennemercollegeboeken.hostzi.com/login_succes/game4.php">Zoek de Spion</a> <br></p>
</aside><!-- #sideLeft -->
</section><!-- #middle-->
</div><!-- #wrapper -->
<footer id="footer">
Kennemercollege Boeken 2013. Site made by <b>Frank Martens</b>
</footer><!-- #footer -->
</body>
</html>
Aha vandaar. Vervang $datb->query door mysql_query
Toevoeging op 04/07/2013 22:16:25:
Waarvoor staat die variabele eigenlijk? Wellicht kom ik dan verder.
Daarom is het eigenlijk niet nodig, maar ik dacht dat het voor jou wat duidelijker zou zijn.
Ik denk ook niet dat de fout in dat stukje zit (weet het eigenlijk zeker), en ik raad je aan dat eens in een apart scriptje uit te testen.
Quote:
In die variabele sla je het resultaat van de query, wat in dit geval true of false is. Daarom is het eigenlijk niet nodig, maar ik dacht dat het voor jou wat duidelijker zou zijn.[/QUOTE]
Dat betekend dat je het dus ook weg kan laten?
Dat betekend dat je het dus ook weg kan laten?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$result = mysql_query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = mysql_query("INSERT INTO user_books (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
if ($mb_result) echo 'Boek ingevoegd';
else echo mysql_error();
}
else echo mysql_error();
// of
if (mysql_query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')")) {
if (mysql_query("INSERT INTO user_books (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())")) {
echo 'Boek ingevoegd';
}
else echo mysql_error();
}
else echo mysql_error();
?>
$result = mysql_query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = mysql_query("INSERT INTO user_books (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
if ($mb_result) echo 'Boek ingevoegd';
else echo mysql_error();
}
else echo mysql_error();
// of
if (mysql_query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')")) {
if (mysql_query("INSERT INTO user_books (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())")) {
echo 'Boek ingevoegd';
}
else echo mysql_error();
}
else echo mysql_error();
?>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
if (mysql_query("INSERT INTO Boeken (Titel,Schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')")) {
if (mysql_query("INSERT INTO user_book (user_id, book_id)
VALUES (1234, LAST_INSERT_ID())")) {
echo 'Boek ingevoegd';
}
else echo mysql_error();
}
else echo mysql_error();
VALUES ('PHP Kookboek', 'Ward van der Put')")) {
if (mysql_query("INSERT INTO user_book (user_id, book_id)
VALUES (1234, LAST_INSERT_ID())")) {
echo 'Boek ingevoegd';
}
else echo mysql_error();
}
else echo mysql_error();
Nu zijn er nog 3 dingen, voor de rest werkt alles perfect, en kan ik dit project afronden.
1) Na het toevoegen komt in de 'Boeken' tabel te staan: 24 PHP Kookboek Ward van der Put
Dit moet worden veranderd naar de ingevoerde waarde
2) Bij het opslaan van de ID's, wordt het member ID als 1234 opgeslagen. Er staat dan nu:
Hierbij klopt het book_id, maar het member ID niet.
3) De leden + boeken moeten worden uitgelezen. Dat gaat met select, maar (waarschijnlijk) gaat dat mij zonder hulp lukken.
Alvast bedankt voor de antwoorden op punt 1 en 2,
Frank
Frank:
Nu zijn er nog 3 dingen, voor de rest werkt alles perfect, en kan ik dit project afronden.
1) Na het toevoegen komt in de 'Boeken' tabel te staan: 24 PHP Kookboek Ward van der Put
Dit moet worden veranderd naar de ingevoerde waarde
1) Na het toevoegen komt in de 'Boeken' tabel te staan: 24 PHP Kookboek Ward van der Put
Dit moet worden veranderd naar de ingevoerde waarde
Bedoel je dat het boek_id geen auto_increment kolom is? Dan moet je die kolom en waarde meenemen in de INSERT. En dan moet je in de tweede insert LAST_INSERT_ID() ook vervangen door de opgegeven waarde.
Quote:
Ik had dat dan ook hard gecodeerd, dat moet je dus vervangen met wat je in de sessie hebt staan.
Overigens heeft een koppeltabel geen eigen AI PK nodig, die staat daar niets te doen. Je maakt van de user_id en de book_id gezamenlijk de PK, heb je gelijk een unique index.
Gewijzigd op 05/07/2013 12:09:38 door Ger van Steenderen
Ger van Steenderen op 05/07/2013 12:08:32:
Bedoel je dat het boek_id geen auto_increment kolom is? Dan moet je die kolom en waarde meenemen in de INSERT. En dan moet je in de tweede insert LAST_INSERT_ID() ook vervangen door de opgegeven waarde.
boek_id is een auto_increment, maar als je een boek toevoegt met 'Carry slee' en als titel 'Kappen!', dan komt er in de tabel boeken te staan:
24 PHP Kookboek Ward van der Put
Quote:
Ik had dat dan ook hard gecodeerd, dat moet je dus vervangen met wat je in de sessie hebt staan.
Overigens heeft een koppeltabel geen eigen AI PK nodig, die staat daar niets te doen. Je maakt van de user_id en de book_id gezamenlijk de PK, heb je gelijk een unique index.
Overigens heeft een koppeltabel geen eigen AI PK nodig, die staat daar niets te doen. Je maakt van de user_id en de book_id gezamenlijk de PK, heb je gelijk een unique index.
Deze sessie is nog niet aangemaakt, en wordt ook niet opgeslagen. Alleen de gebruikersnaam wordt momenteel in een sessie opgeslagen, en of je ingelogd bent of niet. Hoe maak ik de sessie met 'member_id' aan?
Nogmaals, ik heb als voorbeeld de dingen gewoon hard gecodeerd, ik neem aan dat je de titel en de schrijver uit een formulier krijgt dus moet je die waardes daardoor vervangen, en niet vergeten te escapen.