Gegevens doorsturen met editen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Izildo Pimentel

Izildo Pimentel

24/05/2018 16:27:02
Quote Anchor link
Ik heb een edit system gecreëerd en ik zie dat hij die id wel doorgeeft in de url maar wanneer ik verandering submit zie ik het niet veranderen in mijn tabel.

dit is mijn tabel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
// Insert query into table
foreach ($result as $row)
{
    echo    "<tr>";
    echo        "<td align=center>{$row['naam']}</td>" .
                "<td align=center>{$row['type']}</td>".
                "<td align=center><a href=''><img src='edit.png'></a></td>".
                "<td align=center>" . '<a href="deleteBedrijf.php?id=' . $row['ID'] . '"><img src="delete.png"></a>' . "</td>".
                "<td align=center>{$row['comment']}</td>".
                "<td align=center><a href='review.php?id=" .$row['ID'] . "'><img src='comments.png'></a></td>";
                
    echo    "</tr>";
}


veld voor het invullen van comment
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
<?php
// lees het config-bestand
 require_once 'config.php';

 // lees het ID uit de URL
 $id = $_GET['id'];

 // is het ID een nummer?
 if(is_numeric($id)){
    // lees het lid uit de database
    $result = mysqli_query($mysqli, "SELECT comment FROM bedrijven WHERE id = $id");

    // is er een lid gevevonden met dit ID?
    if(mysqli_num_rows($result) == 1){
        //ja, lees het lid uit de dataset
        $row = mysqli_fetch_array($result);
    }
else {
        echo "Geen lid gevonden.";
        exit;
    }
 }


?>

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
</head>
<body>
    
    
    
<!-- De aanmaak form -->
<div class="container mt-5">
    <h3>Ervaring toevoegen</h3>
    <form action="reviewAdd.php" method="post">
    <input type="hidden" name="id" value="<?php echo $id; ?>">

      <div class="form-group">
        <label for="exampleTextarea">Comment</label>
        <textarea class="form-control" name="comm" id="exampleTextarea" value="<?php echo $row['comment'];?>" rows="3" ></textarea>
      </div>
      <a align=center href="index.php" class="backButton btn btn-primary">Terug</a>
      <input type="submit" value="Submit" class="btn btn-primary">
    </form>
</div>    
      
<!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>

  </body>
</html>


Uiteindelijk de update
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
<?php
    // Database + connection
    require_once ('config.php');
        
    // Check de connectie
    if (!$mysqli) {
        die("Connection failed: " . mysqli_connect_error());
    }
    

    // Globale variablen
    $id   = $POST['id'];
    $comm = $_POST["comm"];

    // Create query
    $sql = "UPDATE bedrijven SET comment = '$comm' WHERE id = '$id'";

    if (mysqli_query($mysqli, $sql)) {
        Header("Location: index.php");
    }
else {
        echo "Error: " . $sql . "<br>" . mysqli_error($mysqli);
    }


    // Closing connection
    mysqli_close($mysqli);

?>
 
PHP hulp

PHP hulp

28/03/2024 16:24:37
 
- Ariën  -
Beheerder

- Ariën -

24/05/2018 16:35:39
Quote Anchor link
Lijn 11 van je update klopt niet, er mist een underscore.

Ik zou echt wat aan wat preventie tegen SQL-injection doen, als ik jouw was.
Verder
 
Ben van Velzen

Ben van Velzen

24/05/2018 16:36:35
Quote Anchor link
$POST en $_POST zijn toch wel verschillende dingen.
Ook mag je wel wat escaping gaan toepassen, dit is zo lek als een mandje.

Edit: Ariën was me voor.
Gewijzigd op 24/05/2018 16:36:52 door Ben van Velzen
 
- Ariën  -
Beheerder

- Ariën -

24/05/2018 16:39:24
Quote Anchor link
En header hoort een exit; achteraf te krijgen.

Lees wederom even de reacties van je vorige topic door.
Een exit() in je script om aan te geven dat een gebruiker niet gevonden is, is niet netjes. Handel dit netjes in je script af.
Reserveer een locatie in je formulier waar je foutmeldingen laat tonen.
 
Thomas van den Heuvel

Thomas van den Heuvel

24/05/2018 19:13:04
Quote Anchor link
Een textarea heeft ook geen value, de inhoud gaat tussen de <textarea>[ hier zo ]</textarea> tags.
 



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.