text input en updaten/opvragen database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn v B

Martijn v B

19/03/2013 17:27:44
Quote Anchor link
hallo,

ik heb een probleem met mijn php script.
De bedoeling ervan:
- als de waarde uit de database leeg is, dan moet er een text input verschijnen.
- door middel van een text input de database kunnen updaten(updaten werkt).
- als de waarde uit de database niet leeg is, moet de string(de naam uit de database)worden afgebeeld.

Het lijkt alsof er iets misgaat bij het eerste if statement.
Misschien kan iemand mij helpen aan te wijzen wat ik verkeerd doe.
alvast bedankt.

de code:
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
<form method="post" action=" <?php echo($_SERVER["PHP_SELF"]); ?> "  >
                
                <?php
                
                if(empty($resultxstring)) {
                
                ?>

                <input type="text" name="leerling1" value="">
                <?php
                
            $connect
= mysql_connect("localhost", "root", "usbw") OR DIE("Er kan geen verbing met de database gamaakt worden.");  
            mysql_select_db("test", $connect);                        
                

                if(isset($_POST['inschrijven'])) {
                $leerling1 = $_POST['leerling1'];
        
                $query = "UPDATE inschrijfformulier SET leerling = '" . $leerling1 . "' WHERE nummer = 1 ";
                }


                ?>

                
                <input type="submit" value="Inschrijven" name="inschrijven">
                
                <?php
                }
                else{
                
                $query1 = "SELECT leerling FROM inschrijfformulier WHERE nummer = 1";
                $resultx = mysql_query($query1);
                $resultstring = mysql_fetch_assoc($resultx);
                $resultxstring = $resultstring['leerling'];
                echo "$resultxstring";
                }

                
                ?>


            </form>

Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 19/03/2013 17:44:18 door Martijn v B
 
PHP hulp

PHP hulp

07/12/2021 15:20:31
 
Obelix Idefix

Obelix Idefix

19/03/2013 18:23:31
Quote Anchor link
$_SERVER["PHP_SELF"]) is onveilig. Laat dan liever leeg.
Or die is geen (nette) foutafhandeling.
Je controleert niet of er een verbinding is met de database en of de query is gelukt.
Waar controleer je of $_POST['leerling'] bestaat? En dat de waarde voldoet aan wat je verwacht?
Geen variabelen kopiëren (regel 16). Daarnaast is je query lek/onveilig (mysql_real_escape_string).
Variabelen bij voorkeur buiten quotes.
Zet, indien nog niet aan staat, error-reporting aan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>


Ten aanzien van je vraag/probleem:
script logisch: begin een pagina met php (controles, uitvoer van query's en daarna html.
Gewijzigd op 19/03/2013 18:27:02 door Obelix Idefix
 
Martijn v B

Martijn v B

19/03/2013 18:31:39
Quote Anchor link
Het hoeft voorlopig nog niet veilig te zijn, maar ik houd de kritiek zeker in mijn achterhoofd.
De verbinding wordt wel degelijk gecontroleerd elders in mijn script en dat werkt.

ik ga mijn code proberen te herstructureren.
 
Eddy E

Eddy E

19/03/2013 18:34:55
Quote Anchor link
Regel 5: waar komt $resultxstring vandaan? Als die niet bestaat, kan hij ook niet leeg zijn.

Daarnaast vertel je netjes in je bericht wat je wilt.
Maar die logica zien we niet terug in het script.
 
Martijn v B

Martijn v B

19/03/2013 19:21:38
Quote Anchor link
bedankt! het werkt nu wel
Ik heb nu dit stukje ervoor gezet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
        $connect
= mysql_connect("localhost", "root", "usbw") OR DIE("Er kan geen verbing met de database gamaakt worden.");  
            mysql_select_db("test", $connect);
        
        $query1 = "SELECT leerling FROM inschrijfformulier WHERE nummer = 1";
                $resultx = mysql_query($query1);
                $resultstring = mysql_fetch_assoc($resultx);
                $resultxstring = $resultstring['leerling'];
        ?>


en dit erna voor het resultaat.
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
<form method="post" action=" <?php echo($_SERVER["PHP_SELF"]); ?> "  >
                
                <?php
                
                if(empty($resultxstring)) {
                
                ?>

                <input type="text" name="leerling1" value="">
                <?php
                


                if(isset($_POST['inschrijven'])) {
                
                $query = "UPDATE inschrijfformulier SET leerling = '" . $_POST['leerling1'] . "' WHERE nummer = 1 ";
                }


                ?>

                
                <input type="submit" value="Inschrijven" name="inschrijven">
                
                <?php
                }
                else{
                
                echo "$resultxstring";
                }

                
                
                ?>

                

            </form>


Het enige wat nog niet lukt, is het feit dat het resultaat niet gelijk wordt weergegeven. Ik denk dat de pagina, nadat ik op de submit knop druk, gerefresht moet worden.
Gewijzigd op 19/03/2013 19:23:04 door Martijn v B
 
Vincent Swarte

Vincent Swarte

19/03/2013 21:24:50
Quote Anchor link
Ik raad aan om geen "standaard mysql" functies te gebruiken,
Die raken binnenkort deprecated.

Probeer PDO ;)
 



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.