CRUD Met PHP PDO en MySQL foutmelding

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • +1 Henk 'm!

Verwijderd

Topicstarter
hoi ik ben bezig met een opdracht maar krijg hem niet werkend
de bedoeling is dat het een crud wordt met php
en ik heb nu al dit
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
 
<!Doc<!Doctype html>
<html lang="nl">
    <head>
        <meta http-equiv="Content-Type"
        content="text/html";
        charset="UTF-8"/>
        <title></title>
        <?php require_once 'Crud.php';?>
    </head>
    <body>  
        <div class="panel">
            <form method="post">
                <table border="1" width="40%" cellpadding="15" class="table table-bordered">
                    <tr>
                        <td><input type="text" name="KLANTNR" placeholder="KLANTNR" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['KLANTNR']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td><input type="text" name="VOORNAAM" placeholder="VOORNAAM" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['VOORNAAM']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td><input type="text" name="ACHTERNAAM" placeholder="ACHTERNAAM" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['ACHTERNAAM']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td><input type="text" name="ADRES" placeholder="ADRES" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['ADRES']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td><input type="text" name="POSTCODE" placeholder="POSTCODE" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['POSTCODE']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td><input type="text" name="WOONPLAATS" placeholder="WOONPLAATS" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['WOONPLAATS']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td><input type="text" name="PROVINCIE" placeholder="PROVINCIE" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['PROVINCIE']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td><input type="text" name="TELEFOON" placeholder="TELEFOON" required="" value="<?php if(isset($_GET['edit_id'])){ print($editRow['TELEFOON']); } ?>" /></td>
                    </tr>
                    <tr>
                        <td>
                            <?php
                                if(isset($_GET['edit_id'])){
                            ?>
                            <button type="submit" name="update" class="btn btn-warning">update</button>
                            <?php
                                }
                                else
                                {
                            ?>
                            <button type="submit" name="save" class="btn btn-success">save</button>
                            <?php
                            }
                            ?>
                        </td>
                    </tr>
                </table>
            </form>
            <br />
            <?php
                $stmt = $DBcon->prepare("SELECT * FROM klanten ORDER BY id DESC");
                $stmt->execute();
            ?>
            <table border="1" width="40%" class="table table-bordered">
                <thead>
                    <tr>
                        <td>KLANTNR</td>
                        <td>VOORNAAM</td>
                        <td>ACHTERNAAM</td>
                        <td>ADRES</td>
                        <td>POSTCODE</td>
                        <td>WOONPLAATS</td>
                        <td>PROVINCIE</td>
                        <td>TELEFOON</td>
                        <td>Update</td>
                        <td>Delete</td>
                    </tr>
                </thead>
            <?php
                if($stmt->rowCount() > 0)
            {
                while($row=$stmt->FETCH(PDO::FETCH_ASSOC))
            {
            ?>
            <tr>
                <td><?php print($row['KLANTNR']); ?></td>
                <td><?php print($row['VOORNAAM']); ?></td>
                <td><?php print($row['ACHTERNAAM']); ?></td>
                <td><?php print($row['ADRES']); ?></td>
                <td><?php print($row['POSTCODE']); ?></td>
                <td><?php print($row['WOONPLAATS']); ?></td>
                <td><?php print($row['PROVINCIE']); ?></td>
                <td><?php print($row['TELEFOON']); ?></td>
                <td><a onclick="return confirm('Sure to Edit ? ')" href="index.php?edit_id=<?php print($row['id']); ?>">EDIT</a></td>
                <td><a onclick="return confirm('Sure to Delete ? ')" href="index.php?delete_id=<?php print($row['id']); ?>">DELETE</a></td>
            </tr>
            <?php
            }
            }
            else
            {
            ?>
            <tr>
                <td><?php print("nothing here...");  ?></td>
            </tr>
            <?php
            }
            ?>
            </table>                                                                
        </div>
    </body> 
</html>
 

dit is de betreffende foutmelding:
Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'order clause' in C:\Users\melis\Desktop\CMS\xammp\htdocs\CRUD\index.php:60 Stack trace: #0 C:\Users\melis\Desktop\CMS\xammp\htdocs\CRUD\index.php(60): PDOStatement->execute() #1 {main} thrown in C:\Users\melis\Desktop\CMS\xammp\htdocs\CRUD\index.php on line 60
ik weet niet waar het probleem zit kan iemand mij helpen

Beste antwoord (via Verwijderd op 11-06-2018 10:04)


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 5 april 2018 @ 14:43:
ik weet niet waar het probleem zit kan iemand mij helpen
Je zou eens kunnen uitleggen hoe jij de foutmelding interpreteert en wat je met die informatie gedaan hebt. Zoals je in de eerste paar reacties al kunt lezen: het is gewoon een kwestie van lezen wat er in de foutmelding staat en vervolgens daar naar op zoek gaan (in je code of op 't web).

De essentie is:
Unknown column 'id' in 'order clause'
Je hebt een "order by id" maar volgens de foutmelding bestaat die kolom niet. Dus ga je eerst dat onderzoeken...

Lees ook Debuggen: Hoe doe ik dat? eens.

[ Voor 24% gewijzigd door RobIII op 05-04-2018 16:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Alle reacties


Acties:
  • 0 Henk 'm!

  • Cyw00d
  • Registratie: Januari 2006
  • Laatst online: 11-09 13:04
Kun je je code even tussen [.code=PHP] en [./code] tags zetten (zonder puntjes).
PHP:
1
Dat maakt het een stuk leesbaarder.

Je kunt hier een overzicht vinden van alle tags (UBB codes)

[ Voor 37% gewijzigd door Cyw00d op 05-04-2018 14:46 ]

[ Tesla MIG MYP ]


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Waar denk je dat het probleem zit? Kijk eens goed. Je zegt zelf dat het een opdracht is, dus dan lijkt het me dat je iets moet leren.

Er staat in je text Fatal Error:..... Wat staat daar?

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Groentjuh
  • Registratie: September 2011
  • Laatst online: 17-09 16:55
Ik ga hem even uit elkaar trekken:

Fatal error: Uncaught #####.
Iets heeft een Exception gegooid, die heb jij niet opgevangen (daar heb je try { } catch() {} voor), dus kan PHP verder niets meer uitvoeren behalve een fatal error teruggeven.

De exception is van het type "PDOException" met als bericht: "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'order clause'" en is gestuurd van regel 60 van het bestand "C:\Users\melis\Desktop\CMS\xammp\htdocs\CRUD\index.php".


De stack trace laat zien hoe PHP bij die regel is uitgekomen.
Stack trace:
#0 C:\Users\melis\Desktop\CMS\xammp\htdocs\CRUD\index.php(60): PDOStatement->execute()
#1 {main}

Dus wat gebeurd er op regel 60 en daar (vlak) voor?

Acties:
  • 0 Henk 'm!

  • LoeWn
  • Registratie: December 2007
  • Laatst online: 17-09 13:31
Verwijderd schreef op donderdag 5 april 2018 @ 14:43:
ik weet niet waar het probleem zit kan iemand mij helpen
Hier:

Unknown column 'id' in 'order clause'

Dit kan nooit een moeilijk probleem zijn mits je ook maar een klein beetje verstand hebt van SQL. Heb je dit niet, ga je dan eerst even inlezen in SQL. De basis is niet moeilijk, maar heb je wel nodig voor zo'n opdracht.

Verder, dit is je tweede topic. Je hebt het advies ten harte genomen om zelf aan de slag te gaan. Heel goed. Maar dit is echt een vraag waarbij wij het vermoeden hebben dat jij gewoon een scriptje op internet gevonden hebt en deze niet geimplementeerd krijgt in je eigen omgeving en waarbij wij je met elk simpel probleem moeten helpen die je met ook maar een klein beetje basiskennis zelf zou moeten kunnen fixen.

Acties:
  • +1 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 23:57
LoeWn schreef op donderdag 5 april 2018 @ 15:00:
[...]


Verder, dit is je tweede topic.
Vergeet z'n advertentie niet _/-\o_

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
*snip* Doe gewoon een TR of zeg niks en scroll / klik door. (Dat is je overigens, nog niet heel lang gelezen, ook al verteld)

[ Voor 143% gewijzigd door RobIII op 05-04-2018 16:30 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hoi allemaal ik vraag alleen om hulp omdat ik dit moeilijk vind ik het dit gemaakt met behulp van stappen die ik eerder heb gedaan of door informatie op te zoeken op het internet ik heb het dus niet gekopieerd en geplakt als je mijn vraag onnozel vindt antwoord dan niet

[ Voor 10% gewijzigd door Verwijderd op 05-04-2018 16:10 ]


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 5 april 2018 @ 14:43:
ik weet niet waar het probleem zit kan iemand mij helpen
Je zou eens kunnen uitleggen hoe jij de foutmelding interpreteert en wat je met die informatie gedaan hebt. Zoals je in de eerste paar reacties al kunt lezen: het is gewoon een kwestie van lezen wat er in de foutmelding staat en vervolgens daar naar op zoek gaan (in je code of op 't web).

De essentie is:
Unknown column 'id' in 'order clause'
Je hebt een "order by id" maar volgens de foutmelding bestaat die kolom niet. Dus ga je eerst dat onderzoeken...

Lees ook Debuggen: Hoe doe ik dat? eens.

[ Voor 24% gewijzigd door RobIII op 05-04-2018 16:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • borft
  • Registratie: Januari 2002
  • Laatst online: 15-09 16:33
een kleine hint:
code:
1
SHOW CREATE TABLE `klanten`;

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heb al een mysql database met klanten er in deze haal ik er uit doormiddel van een pdo connectie
borft schreef op donderdag 5 april 2018 @ 16:44:
een kleine hint:
code:
1
SHOW CREATE TABLE `klanten`;

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor je hulp zal eens kijken of ik het nu kan oplossen
RobIII schreef op donderdag 5 april 2018 @ 16:32:
[...]


Je hebt een "order by id" maar volgens de foutmelding bestaat die kolom niet. Dus ga je eerst dat onderzoeken...

Lees ook Debuggen: Hoe doe ik dat? eens.

Acties:
  • +2 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 23:57
@Verwijderd Het probleem is alleen dat je niks leert als iemand je vertelt wat je fout deed. Een enorm belangrijk aspect van programmeren is het debuggen van je code. En duidelijker dan deze foutmelding zal je ze niet krijgen. Er staat wat er verkeerd ging en in welke regel. Dan is het stap voor stap kijken wat er fout gaat en waarom.

Acties:
  • 0 Henk 'm!

  • borft
  • Registratie: Januari 2002
  • Laatst online: 15-09 16:33
BarôZZa schreef op donderdag 5 april 2018 @ 17:02:
@Verwijderd Het probleem is alleen dat je niks leert als iemand je vertelt wat je fout deed. Een enorm belangrijk aspect van programmeren is het debuggen van je code. En duidelijker dan deze foutmelding zal je ze niet krijgen. Er staat wat er verkeerd ging en in welke regel. Dan is het stap voor stap kijken wat er fout gaat en waarom.
Dat dus! dat is precies waarom ik de hint gaf om je tabel structuur te checken (kan ook met describe overigens)

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
BarôZZa schreef op donderdag 5 april 2018 @ 17:02:
@Verwijderd Een enorm belangrijk aspect van programmeren is het debuggen van je code. En duidelijker dan deze foutmelding zal je ze niet krijgen. Er staat wat er verkeerd ging en in welke regel. Dan is het stap voor stap kijken wat er fout gaat en waarom.
Dit dus. Ik begrijp dat RobIII mijn post verwijderde omdat ik er een nerd grap in had gezet zonder heel veel uitleg.
Echter stond er ook een link in hoe je leert analyseren, en dat is nou precies wat je nodig hebt bij debuggen.
De meesten staren zich blind op "ik zie een error" maar hebben niet geleerd hoe je die error melding opbreekt in stukjes en elk stukje afzonderlijke behandelt met logica (het analytisch denken).

Het is voor ons guru's een koud kunstje want wij analyseren automatisch error meldingen dagelijks.

Ik doe aan zelf-reflectie en weet dat ik ook nog niet goed ben in het op de juiste manier vertellen hoe TS dit makkelijk kan leren (terechte *snip* dus) ;)

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Groax
  • Registratie: Oktober 2012
  • Laatst online: 18-08 11:58
@Verwijderd

Plaats is een print screen van de table van *klanten*

Mysql is hoofdletter gevoelig als ik dat goed heb. Dus misschien ID ipv id

---

Het uitproberen van SQL query's in een tool zoals Workbench, phpMyAdmin of een andere tool wilt ook wel is helpen met debuggen van SQL code.

[ Voor 2% gewijzigd door Groax op 16-04-2018 10:30 . Reden: 2x zijn naam :P ]


Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
moese schreef op maandag 16 april 2018 @ 10:29:
Plaats is een print screen van de table van *klanten*
Dat vroeg borft in "CRUD Met PHP PDO en MySQL foutmelding" ook al; minder omslachtig ;)
moese schreef op maandag 16 april 2018 @ 10:29:
Mysql is hoofdletter gevoelig als ik dat goed heb. Dus misschien ID ipv id
Dat ligt een stuk genuanceerder; als je InnoDB gebruikt bijv. niet. Ook is er een lower_case_table_names setting in my.cnf. Je kunt dus niet zomaar stellen dat MySQL case-sensitive is.

[ Voor 41% gewijzigd door RobIII op 16-04-2018 10:39 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1