PHP problem => with update status

Status
Niet open voor verdere reacties.

gast0187

Gebruiker
Lid geworden
4 nov 2012
Berichten
266
Hallo,

ik wil de status van iets kunnen wijzigen.
Maar het updaten lukt niet.
Telkens als ik op opslaan duw refresht de pagina gaat de select terug naar de standaardwaarde en database wordt ook niet geupdate.

Huidige code:

PHP:
<!DOCTYPE html>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Nascholingen</title>
        <link href="CSS/style.css" rel="Stylesheet" type="text/css"/>
        <script>
            function verwijder(IDnascholing)
            {
                if (confirm('Wilt u ' + IDnascholing + ' verwijderen?'))
                {
                    window.location = "?verwijder=" + IDnascholing;    
                }
            }
        </script>
    </head>
    <body>
             <?php  
                session_start();
                include("conn/connectDB.php");
                //kijken of het directie of leraar is
                if(isset($_SESSION['logged_in']) && ($_SESSION['logged_in']) == true)
                {
            ?>             
            <?php
                }
            ?>
             <div class="container">
            <?php              
                if(!isset($_GET['wijzig']))
                {

                if(isset($_GET['verwijder']))
                {
                    $id = $mysqli->real_escape_string(filter_input(INPUT_GET, 'verwijder'));
                    $sql = "DELETE FROM Tbl_nascholingen WHERE IDnascholing = $id";
                    if(!$res = $mysqli->query($sql))
                    {
                        trigger_error('Fout in DELETE: '.$mysqli->error);
                    }
                }
                
                if (isset($_POST['opslaanwijzig']))
                {
                    $id = $mysqli->real_escape_string(filter_input(INPUT_POST, 'wijzigid'));
                    $IDStatus = $mysqli->real_escape_string(filter_input(INPUT_POST, 'IDStatus'));
                    
                    $sql = "UPDATE Tbl_nascholingen SET Status= $IDstatus WHERE IDnascholing =$id";
                    if(!$res = $mysqli->query($sql))
                    {
                        trigger_error('Fout in UPDATE: '.$mysqli->error);
                    }
                }
            ?>
                <div class="printknop"><a href="javascript:print();"><img src="icons/print.png" alt="" /></a></div>
                <div class="printknop"><a href="#"><img src="icons/excel.png" alt="" /></a></div>
                <br>
                <h1>Beheer Alle Nascholingen</h1>
                <table border="1">
                <thead>
                <tr>
                    <th>Leerkracht</th>
                    <th>Discipline</th>
                    <th>Datumaanvraag</th>
                    <th>Onderwerp</th>                                      
                    <th>Plaats</th>
                    <th>Inschrijvingsgeld</th>
                    <th>E-mail</th>
                    <th>Status</th>
                    <th>Nascholingdetail</th>
                    <th colspan="2" data-sorter="false">Bewerkingen</th>
                </tr>
                </thead>
                <tbody>
            <?php
                $sql = "SELECT * FROM Tbl_nascholingen N,Tbl_leerkrachten L, Tbl_Disciplines D, Tbl_Statussen S WHERE N.Leerkracht = L.Stamboeknummer AND N.Discipline = D.IDDiscipline AND N.Status = S.IDStatus ORDER BY IDnascholing";
                if(!$res = $mysqli->query($sql))
                {
                    trigger_error('Fout in query: '.$mysqli->error);
                }
                else
                {
                while($row = $res->fetch_assoc())
                    {
                    ?>
                    <tr>
                        <td><?php print($row["Naam"].' '.$row["Voornaam"]); ?></td>
                        <td><?php print($row["Discipline"]); ?></td>
                        <td><?php print($row["Datumaanvraag"]); ?></td>
                        <td><a><?php print($row["Onderwerp"]); ?></a></td>                                             
                        <td><?php print($row["Plaats"]); ?></td>
                        <td><?php print('&euro; '.$row["Inschrijvingsgeld"]); ?></td>
                        <td><?php print($row["e-mail"]); ?></td>
                        <td><?php print($row["Status"]); ?></td>
                        <td><a href='nascholingdetail.php?IDnascholing=<?php print($row["IDnascholing"]); ?>'><img src="icons/detail-icon.png" /></a></td>
                        <td><a href="allenascholingen.php?wijzig=<?php print($row["IDnascholing"]); ?>"><img src="icons/edit-icon.png" /></a></td>
                        <td><img src="icons/delete-icon.png" onclick="verwijder(<?php print($row["IDnascholing"]); ?>)"/></td>
                    </tr>
                    <?php
                }
            }
            ?>
                </tbody>
            </table>
            <a href="start.php">Terug naar index</a>
            <?php
            }
            else 
            {
                $id = $mysqli->real_escape_string($_GET['wijzig']);
                 ?>
                   <h1>Status Wijzigen</h1>
                   <hr>
                    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">              
                        <p>
                            <label for='Status'>Status :</label>
                            <select name="IDStatus" id="IDStatus">
                                <?php 
                                $sql = "SELECT * FROM Tbl_Statussen"; 
                                if(!$res = $mysqli->query($sql))
                                {
                                    trigger_error('Fout in query: '.$mysqli->error);
                                } else {
                                    while($row = $res->fetch_assoc())
                                {
                                ?>
                                    <option value="<?php print($row["IDStatus"]); ?>"><?php print($row["Status"]); ?></option>
                                <?php
                                }
                                }
                                ?>
                            </select>
                            <?php echo 'hallo'; ?>
                        </p>
                        <input type='hidden' name='wijzigid' value='<?php $id ?>' />
                        <input type='submit' name='opslaanwijzig' value='opslaan' />
                   </form>
                   <?php
            }
            ?>
        </div>
    </body>
</html>

Hopelijk kan iemand me hier helpen voor dat probleem, heb al vanalles geprobeerd.

Alvast op voorhand bedankt.
 
Laatst bewerkt:
Op het moment dat de pagina submit. Wat staat er dan in je $_POST ?
Want je triggert op basis van de inhoud van de postvariabele.
 
Je hebt in als hidden wijzigid staan en je get wijzig. Daar gaat die zo te zien fout.
PHP:
<input type='hidden' name='wijzigid' value='<?php $id ?>' />

Daarnaast heb je alleen $id staan, wat moet php daarmee doen? Echo'en?
 
$id dient voor mijn sql statement: $sql = "UPDATE Tbl_nascholingen SET Status= $IDstatus WHERE IDnascholing =$id";

Het is niet de tabel statusssen die gewijzigd moet worden maar de status van een nascholing of deze goedgekeurd/afgekeurd/geen reactie is.
Dat is voor IDnascholing moet overeen komen met het id opdat de status voor het betreffende nascholing zou gewijzigd worden en niet alle statussen van alle nascholingen.

Ik snap nog steeds niet wat ik nu moet wijzigen.
 
Laatst bewerkt:
Killermenace bedoeld dat dit:
PHP:
<input type='hidden' name='wijzigid' value='<?php $id ?>' />
di moet worden:
PHP:
<input type='hidden' name='wijzigid' value='<?php echo $id; ?>' />

Dit omdat <?php $id ?>, niets doet. en <?php echo $id; ?> de waarde van $id zal invoeren
 
Het is gelukt ik heb het gedeelte de update query verplaats achter mijn formulier achter de sluit haakje van else kant van dit if(!isset($_GET['wijzigid'])).
Aan de code heb ik verder niets meer moeten wijzigen, klopte zoals in post #6 en #4.

Bedankt maar hoe het komt dat het anders niet wilde werken blijft me nog een raadsel.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan