Nieuw record in gekoppelde tabel
Hallo,
Ik ben een echte beginner in php en mysql. Wie kan me even opweg helpen?
Ik heb een excel-bestand geimporteerd in een tabel (tbl_fn). De tabel heeft 4 kolommen (nummer_id (AI), naam, firma, prio). Ik wil de structuur van deze tabel ongewijzigd laten. Ik wil echter wel een datum, plaats, omschrijving eraan toevoegen. Daarvoor had ik een tbl_planning in gedachte, en die laten koppelen aan nummer_id in tbl_fn.
Dus in tbl_fn zijn alle kolommen al gevuld met data. Via een soort edit-formulier wil ik daar datum, plaats en omschrijving aan toevoegen, om daarna het volledige record (tbl_fn + tbl_planning) weer te geven.
Hoe kan ik dat realiseren?
Bedankt,
Rene
Ik ben een echte beginner in php en mysql. Wie kan me even opweg helpen?
Ik heb een excel-bestand geimporteerd in een tabel (tbl_fn). De tabel heeft 4 kolommen (nummer_id (AI), naam, firma, prio). Ik wil de structuur van deze tabel ongewijzigd laten. Ik wil echter wel een datum, plaats, omschrijving eraan toevoegen. Daarvoor had ik een tbl_planning in gedachte, en die laten koppelen aan nummer_id in tbl_fn.
Dus in tbl_fn zijn alle kolommen al gevuld met data. Via een soort edit-formulier wil ik daar datum, plaats en omschrijving aan toevoegen, om daarna het volledige record (tbl_fn + tbl_planning) weer te geven.
Hoe kan ik dat realiseren?
Bedankt,
Rene
Is de relatie 1-op-1 of 1-op-meer voor de tabel tbl_fn naar tbl_planning?
Verder is het raadzaam om de prefix tbl_ weg te laten.
Wanneer de relatie 1-op-1 is kan je beter wat velden toevoegen in de tabel tbl_fn.
Wanneer de relatie 1-op-meer is dan neem je in de tabel tbl_planning het id over van de tabel tbl_fn en dat noem je dan fn_id. Op basis hiervan kan je de tabellen joinen in een select statement.
Verder is het raadzaam om de prefix tbl_ weg te laten.
Wanneer de relatie 1-op-1 is kan je beter wat velden toevoegen in de tabel tbl_fn.
Wanneer de relatie 1-op-meer is dan neem je in de tabel tbl_planning het id over van de tabel tbl_fn en dat noem je dan fn_id. Op basis hiervan kan je de tabellen joinen in een select statement.
Gewijzigd op 06/10/2013 16:10:41 door Aad B
Het is een 1-op-1 relatie. Ik wil tbl_fn ongewijzigd laten, want wellicht importeer ik straks nor meer records vanuit Excel naar deze tabel. Het "joinen" van de 2 tabellen is me ook gelukt, maar de tabel is verder statisch. Ik kan de gegevens (datum, plaats,omschrijving) niet wijzigen.
Misschien eens hier op phphulp wat tutorials lezen over php, mysql en insert/update. Heb je wat geprobeerd en je krijgt het niet aan de praat dan kan je altijd wat code hier bespreken.
Gewijzigd op 06/10/2013 16:35:11 door Aad B
Rene van Mook op 06/10/2013 16:27:45:
Het is een 1-op-1 relatie. Ik wil tbl_fn ongewijzigd laten, want wellicht importeer ik straks nor meer records vanuit Excel naar deze tabel.
Je importeert nu ook niet alle kolommen in de tabel uit Excel, want je hebt een primary key (nummer_id) met een auto-increment.
Dus die andere kolommen kan je of nullable maken of een not null met een default, dan kan je ze bij het importeren ook gewoon overslaan.
Maakt het updaten een stuk eenvoudiger.
Ger bedoelt hier dus mee, als ik het goed begrijp, maak 1 tabel en zet daar alles in. Een alternatief is een staging table waarin je alles inleest. Eventueel nog wat bewerkingen (aanpassen, verrijken) doet waarna je het vervolgens insert in tbl_fn (insert into tbl_fn select veld1,veld2,veld3,.... from tbl_staging_fn) waarna je de staging table weer leegmaakt voor een nieuwe import. Zo heb je wat je wil, een vrije lege table voor excel imports.
Gewijzigd op 06/10/2013 22:06:31 door Aad B
Ik heb het - denk ik - bijna voor elkaar. Hieronder de code voor het overzicht, 't updateform, en de update-code.
De query returns "succesfull", maar 0 rows updated. Daar blijf ik hangen.
Er staan fouten in, dat zal best; ben heftig aan 't freubelen gegaan, en dus staan er "makkelijke" fouten, maar wie helpt me hiermee?
De query returns "succesfull", maar 0 rows updated. Daar blijf ik hangen.
Er staan fouten in, dat zal best; ben heftig aan 't freubelen gegaan, en dus staan er "makkelijke" fouten, maar wie helpt me hiermee?
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
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 require_once ("includes/connection.php"); ?>
<?php require_once ("includes/functions.php"); ?>
<?php include ("includes/header.php"); ?>
<?php
$query = "SELECT * FROM tbl_fn";
$result_set = mysqli_query($connection, $query);
if(!$result_set) {
die("Database Query Failed: ") . mysqli_error();
}
?>
</div>
<div id="content">
<table class="tablesorter">
<thead>
<tr>
<th>FN nummer</th>
<th>Jaar</th>
<th>Datum</th>
<th>Prioriteit</th>
<th>Status</th>
<th>Responsible</th>
<th>Tagnummer</th>
<th>Designation</th>
<th>Fault</th>
<th>Uitvoerder</th>
<th>dagen</th>
<th>Deel 08:00</th>
<th>Deel 10:00</th>
<th>Deel 13:00</th>
<th>Deel 15:00</th>
</tr>
</thead>
<tbody>
<?php
while ($row = mysqli_fetch_array($result_set)) {
?>
<tr>
<td><?php echo $row["nummer"]?></td>
<td><?php echo $row["year"]?></td>
<td><?php echo $row["date"]?></td>
<td><?php echo $row["priority"]?></td>
<td><?php echo $row["status"]?></td>
<td><?php echo $row["responsible"]?></td>
<td><?php echo $row["code"]?></td>
<td><?php echo $row["designation"]?></td>
<td><?php echo $row["text"]?></td>
<td><?php echo $row["uitvoerder"]?></td>
<td><?php echo $row["dagen"]?></td>
<td><?php echo $row["deel_8"]?></td>
<td><?php echo $row["deel_10"]?></td>
<td><?php echo $row["deel_13"]?></td>
<td><?php echo $row["deel_15"]?></td>
<td><a href="update_fn.php?nummer=<?php echo $row["nummer"]; ?>">update</a></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php require("includes/footer.php"); ?>
<?php require_once ("includes/functions.php"); ?>
<?php include ("includes/header.php"); ?>
<?php
$query = "SELECT * FROM tbl_fn";
$result_set = mysqli_query($connection, $query);
if(!$result_set) {
die("Database Query Failed: ") . mysqli_error();
}
?>
</div>
<div id="content">
<table class="tablesorter">
<thead>
<tr>
<th>FN nummer</th>
<th>Jaar</th>
<th>Datum</th>
<th>Prioriteit</th>
<th>Status</th>
<th>Responsible</th>
<th>Tagnummer</th>
<th>Designation</th>
<th>Fault</th>
<th>Uitvoerder</th>
<th>dagen</th>
<th>Deel 08:00</th>
<th>Deel 10:00</th>
<th>Deel 13:00</th>
<th>Deel 15:00</th>
</tr>
</thead>
<tbody>
<?php
while ($row = mysqli_fetch_array($result_set)) {
?>
<tr>
<td><?php echo $row["nummer"]?></td>
<td><?php echo $row["year"]?></td>
<td><?php echo $row["date"]?></td>
<td><?php echo $row["priority"]?></td>
<td><?php echo $row["status"]?></td>
<td><?php echo $row["responsible"]?></td>
<td><?php echo $row["code"]?></td>
<td><?php echo $row["designation"]?></td>
<td><?php echo $row["text"]?></td>
<td><?php echo $row["uitvoerder"]?></td>
<td><?php echo $row["dagen"]?></td>
<td><?php echo $row["deel_8"]?></td>
<td><?php echo $row["deel_10"]?></td>
<td><?php echo $row["deel_13"]?></td>
<td><?php echo $row["deel_15"]?></td>
<td><a href="update_fn.php?nummer=<?php echo $row["nummer"]; ?>">update</a></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php require("includes/footer.php"); ?>
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
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
<?php require_once ("includes/connection.php"); ?>
<?php require_once ("includes/functions.php"); ?>
<?php include ("includes/header.php"); ?>
<?php
// get value of id that sent from address bar
$nummer=$_GET['nummer'];
?>
<?php
$query = "SELECT * FROM tbl_fn
WHERE nummer='$nummer'";
$result_set = mysqli_query($connection, $query);
if(!$result_set) {
die("Database Query Failed: ") . mysqli_error();
}
?>
</div>
<div id="content">
<form name="Update_Planning" method="post" action="create_planning.php">
<table class="tablesorter">
<thead>
<tr>
<th>FN nummer</th>
<th>Jaar</th>
<th>Datum</th>
<th>Prioriteit</th>
<th>Status</th>
<th>Responsible</th>
<th>Tagnummer</th>
<th>Designation</th>
<th>Fault</th>
<th>Uitvoerder</th>
<th>dagen</th>
<th>Deel 08:00</th>
<th>Deel 10:00</th>
<th>Deel 13:00</th>
<th>Deel 15:00</th>
</tr>
</thead>
<tbody>
<?php
while ($row = mysqli_fetch_array($result_set)) {
?>
<tr>
<td><?php echo $row["nummer"]?></td>
<td><?php echo $row["year"];?></td>
<td><?php echo $row["date"]?></td>
<td><?php echo $row["priority"]?></td>
<td><?php echo $row["status"]?></td>
<td><?php echo $row["responsible"]?></td>
<td><?php echo $row["code"]?></td>
<td><?php echo $row["designation"]?></td>
<td><?php echo $row["text"]?></td>
<td><input name="uitvoerder" type="text" id="uitvoerder"<?php echo $row["uitvoerder"]?>"></td>
<td><?php echo $row["dagen"]?></td>
<td><?php echo $row["deel_8"]?></td>
<td><?php echo $row["deel_10"]?></td>
<td><?php echo $row["deel_13"]?></td>
<td><?php echo $row["deel_15"]?></td>
<td><input name="nummer" type="hidden" id="nummer" value="<? echo $row['nummer']; ?>"></td>
<td><input type="submit" name="Submit" value="Submit"></td>
</tr>"
<?php
}
?>
</tbody>
</table>
<?php require("includes/footer.php"); ?>
<?php require_once ("includes/functions.php"); ?>
<?php include ("includes/header.php"); ?>
<?php
// get value of id that sent from address bar
$nummer=$_GET['nummer'];
?>
<?php
$query = "SELECT * FROM tbl_fn
WHERE nummer='$nummer'";
$result_set = mysqli_query($connection, $query);
if(!$result_set) {
die("Database Query Failed: ") . mysqli_error();
}
?>
</div>
<div id="content">
<form name="Update_Planning" method="post" action="create_planning.php">
<table class="tablesorter">
<thead>
<tr>
<th>FN nummer</th>
<th>Jaar</th>
<th>Datum</th>
<th>Prioriteit</th>
<th>Status</th>
<th>Responsible</th>
<th>Tagnummer</th>
<th>Designation</th>
<th>Fault</th>
<th>Uitvoerder</th>
<th>dagen</th>
<th>Deel 08:00</th>
<th>Deel 10:00</th>
<th>Deel 13:00</th>
<th>Deel 15:00</th>
</tr>
</thead>
<tbody>
<?php
while ($row = mysqli_fetch_array($result_set)) {
?>
<tr>
<td><?php echo $row["nummer"]?></td>
<td><?php echo $row["year"];?></td>
<td><?php echo $row["date"]?></td>
<td><?php echo $row["priority"]?></td>
<td><?php echo $row["status"]?></td>
<td><?php echo $row["responsible"]?></td>
<td><?php echo $row["code"]?></td>
<td><?php echo $row["designation"]?></td>
<td><?php echo $row["text"]?></td>
<td><input name="uitvoerder" type="text" id="uitvoerder"<?php echo $row["uitvoerder"]?>"></td>
<td><?php echo $row["dagen"]?></td>
<td><?php echo $row["deel_8"]?></td>
<td><?php echo $row["deel_10"]?></td>
<td><?php echo $row["deel_13"]?></td>
<td><?php echo $row["deel_15"]?></td>
<td><input name="nummer" type="hidden" id="nummer" value="<? echo $row['nummer']; ?>"></td>
<td><input type="submit" name="Submit" value="Submit"></td>
</tr>"
<?php
}
?>
</tbody>
</table>
<?php require("includes/footer.php"); ?>
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
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
<?php require_once ("includes/connection.php"); ?>
<?php require_once ("includes/functions.php"); ?>
<?php
$uitvoerder = mysql_prep($_POST['uitvoerder']);
$dagen = mysql_prep($_POST['dagen']);
$deel_8 = mysql_prep($_POST['deel_8']);
$deel_10 = mysql_prep($_POST['deel_10']);
$deel_13 = mysql_prep($_POST['deel_13']);
$deel_15 = mysql_prep($_POST['deel_15']);
?>
<?php
$query = "UPDATE tbl_fn SET WHERE nummer='$nummer'(
uitvoerder, dagen, deel_8, deel_10, deel_13, deel_15)
VALUES(
'{$uitvoerder}', '{$dagen}', '{$deel_8}', '{$deel_10}', '{$deel_13}', '{$deel_15}'
)"
;
// if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($connection));
echo "<BR>";
echo "<a href='all_fn.php'>View result</a>";
}
else {
echo "<p>Data toevoegen mislukt.</p>";
echo "<p>" . mysqli_error($connection) . "</p>";
}
?>
<?php mysqli_close($connection);?>
<?php require_once ("includes/functions.php"); ?>
<?php
$uitvoerder = mysql_prep($_POST['uitvoerder']);
$dagen = mysql_prep($_POST['dagen']);
$deel_8 = mysql_prep($_POST['deel_8']);
$deel_10 = mysql_prep($_POST['deel_10']);
$deel_13 = mysql_prep($_POST['deel_13']);
$deel_15 = mysql_prep($_POST['deel_15']);
?>
<?php
$query = "UPDATE tbl_fn SET WHERE nummer='$nummer'(
uitvoerder, dagen, deel_8, deel_10, deel_13, deel_15)
VALUES(
'{$uitvoerder}', '{$dagen}', '{$deel_8}', '{$deel_10}', '{$deel_13}', '{$deel_15}'
)"
;
// if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($connection));
echo "<BR>";
echo "<a href='all_fn.php'>View result</a>";
}
else {
echo "<p>Data toevoegen mislukt.</p>";
echo "<p>" . mysqli_error($connection) . "</p>";
}
?>
<?php mysqli_close($connection);?>




