Nieuw record in gekoppelde tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rene van Mook

Rene van Mook

06/10/2013 15:45:28
Quote Anchor link
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
 
PHP hulp

PHP hulp

23/12/2024 04:12:47
 
Aad B

Aad B

06/10/2013 16:10:21
Quote Anchor link
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.
Gewijzigd op 06/10/2013 16:10:41 door Aad B
 
Rene van Mook

Rene van Mook

06/10/2013 16:27:45
Quote Anchor link
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.
 
Aad B

Aad B

06/10/2013 16:34:54
Quote Anchor link
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
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/10/2013 18:04:14
Quote Anchor link
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.
 
Aad B

Aad B

06/10/2013 22:05:42
Quote Anchor link
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
 
Rene van Mook

Rene van Mook

08/10/2013 14:42:06
Quote Anchor link
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?

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
<?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"); ?>


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
<?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"); ?>


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
<?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);?>
 



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.