database gegevens updaten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ch th

ch th

21/09/2012 17:44:07
Quote Anchor link
Hallo

Ik wil een pagina maken waarmee ik gegevens uit een database kan aanpassen.

liefst zou ik hebben dat dit in 2 stappen gebeurt namelijk:
1) een pagina waarop ik dmv <select></select> een waarde selecteer die ik wil aanpassen en waarbij ik op 'volgende' moet klikken
2)een pagina waar de velden weergeven worden en waar ik dus de nieuwe waarden invul.

aangezien ik nog niet veel ervaring heb had ik graag de mening van ervaren php'ers gehoord. voornamelijk hoe jullie dan tewerk gaan qua script-logica?

alvast bedankt
mvg
 
PHP hulp

PHP hulp

26/04/2024 18:14:17
 
Flip --

Flip --

21/09/2012 17:55:46
Quote Anchor link
2)
stappen:
- in html een form maken
- database verbinding maken en database selecteren
- in php met $_GET of $_POST de waardes van het form in een SQL query zetten <-- je query is hier een INSERT
- als de query geslaagd is iets aan de gebruiker laten zien

1)
waardes staan in kolommen en rijen, dus je select selecteerd een rij of een kolom, waarschijnlijk een kolom want er zijn vaak zoveel rijen dat je select te groot wordt.

stappen:
- in html een form maken voor het selecteren van de kolom (select)
- database verbinding maken en database selecteren
- juiste rij ophalen ... hoe selecteer je deze rij ??
- in php met $_GET of $_POST de waardes van het form de select uitlezen om te kijken welke kolom je nodig hebt.
- de waarde van deze kolom staat in een array van de rij die je net hebt opgehaald (even om het simpel te houden haal je een hele rij op)
- als je een waarde gevonden hebt een ander form maken waarbij je deze waarde bij <input text="" value=" hier moet deze waarde komen " ...

Dan zit je dus op de "tweede" pagina en dan weer opnieuw:
- database verbinding maken en database selecteren
- in php met $_GET of $_POST de waardes van het form in een SQL query zetten <-- je query is hier een UPDATE
- als de query geslaagd is iets aan de gebruiker laten zien
 
Ch th

ch th

21/09/2012 18:03:31
Quote Anchor link
het ophalen en dus ook selecteren welke waarde (in mijn geval artikelen) aangepast moet worden doe ik als volgt:
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
<h2>Artikel wijzigen</h2>
<form action='' method='post'>
<table>
<tr><td>Selecteer een artikel:</td><td><select name='artikel'>
                                    <option value=''>Kies een artikel</option>
                                    <?php
                                    include('dbconnect.php');
                                    $sql_sel_art = "SELECT artikel_id, naam FROM artikel";
                                    $res_sel_art = mysql_query($sql_sel_art);
                                    while ($rij = mysql_fetch_assoc($res_sel_art)) {
                                        echo "<option value='". $rij['artikel_id'] ."'>". $rij['naam'] ."</option>\n";
                                    }

                                    mysql_close($db);
                                    ?>

                                    </select></td></tr>
<tr><td></td><td><input type='submit' name='next' value='volgende' /></td></tr>
</table>
</form>


daarna zit ik te denken aan een if .. else constructie zoals hieronder maar dit blijkt niet te werken.

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
<?php
if ($_SERVER['REQUEST_METHOD'] == 'post' && isset($_POST['next'])) {
    include('dbconnect.php');
    $sql_sel_art = "SELECT artikel_id, naam, omschrijving, prijs FROM artikel";
    $res_sel_art = mysql_query($sql_sel_art);
    $rij = mysql_fetch_assoc($res_sel_art);    
?>
    
    <h2>Artikel wijzigen</h2>
    <form action='' method='post'>
    <table>
    <tr><td>Artikelnaam:</td><td><input type="text" name="artikelnaam" value='<?php echo $rij['naam']?>' /></td></tr>
    <tr><td>Categorie:</td><td><select name='categorie'>
                                <!--<option disabled='disabled'>kies een categorie</option>-->                                
                                <option value=''>kies een categorie</option>
                                <?php
                                    include("dbconnect.php");
                                    $sql = "SELECT categorie_id, naam FROM categorie";
                                    $result = mysql_query($sql);
                                    while ($rij2 = mysql_fetch_assoc($result)) {
                                        echo "<option value='" . $rij2['categorie_id'] ."'> ". $rij2['naam'] ."</option>\n";
                                    }

                                    mysql_close($db);
                                ?>
    
    </select></td></tr>
    <tr><td>Beschrijving:</td><td><textarea name="artikelbeschrijving" cols="30" rows="4"><?php echo $rij['omschrijving'] ?></textarea></td></tr>
    <tr><td>Prijs:</td><td><input type="text" name="artikelprijs" value='<?php echo $rij['prijs'] ?>' /></td></tr>
    <tr><td></td><td><input type="submit" name="artikelwijzigen" value="wijzig" /><input type="reset" value="reset"/></td></tr>
    </form>
    </table>

<?php
} elseif ($_SERVER['REQUEST_METHOD'] == '' && isset($_POST['artikelwijzigen'])) {
    
    
}
else {
?>


eigenlijk weet ik niet of ik qua logica goed bezig ben of niet?
Gewijzigd op 21/09/2012 18:05:12 door ch th
 
Flip --

Flip --

21/09/2012 18:07:44
Quote Anchor link
in eerst instantie zal er al een form moeten zijn ook al heeft de user niks gesubmit.

Als je forms tussen if ($_SERVER['REQUEST_METHOD'] == 'post' ... { }
zetten zal er dus voor zorgen dat er nooit een form komt
 
Ch th

ch th

21/09/2012 18:11:32
Quote Anchor link
wel, eerst en vooral zou ik dus een form nemen met daarin de <select></select> om het artikel te kiezen dat moet worden aagepast. (de code die ik al eerste hierboven postte)
en daarna zou de gebruiker op volgende moeten klikken om in het gedeelte te komen waar de huidige waarden van het artikel worden ingevuld en waar de gebruiker dus ook de mogelijkheid krijgt om deze waarden aan te passen.

de if else met de SERVER_REQUEST heb ik zo gedaan zodat ik in één en dezelfde pagina/bestand kan blijven. (is dit verstandig/efficiënt?)

EDIT: ik heb even alles wat ik tot nu toe heb gepost op de manier waarop ik denk dat het mogelijk is

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
if ($_SERVER['REQUEST_METHOD'] == 'post' && isset($_POST['next'])) {
    
    // EERSTE FORMULIER (SELECTEREN ARTIKEL) IS INGEVULD EN ER IS OP SUBMIT GEKLIKT
    
    include('dbconnect.php');
    $sql_sel_art = "SELECT artikel_id, naam, omschrijving, prijs FROM artikel";
    $res_sel_art = mysql_query($sql_sel_art);
    $rij = mysql_fetch_assoc($res_sel_art);    
?>
    
    <h2>Artikel wijzigen</h2>
    <form action='' method='post'>
    <table>
    <tr><td>Artikelnaam:</td><td><input type="text" name="artikelnaam" value='<?php echo $rij['naam']?>' /></td></tr>
    <tr><td>Categorie:</td><td><select name='categorie'>
                                <!--<option disabled='disabled'>kies een categorie</option>-->                                
                                <option value=''>kies een categorie</option>
                                <?php
                                    include("dbconnect.php");
                                    $sql = "SELECT categorie_id, naam FROM categorie";
                                    $result = mysql_query($sql);
                                    while ($rij2 = mysql_fetch_assoc($result)) {
                                        echo "<option value='" . $rij2['categorie_id'] ."'> ". $rij2['naam'] ."</option>\n";
                                    }

                                    mysql_close($db);
                                ?>
    
    </select></td></tr>
    <tr><td>Beschrijving:</td><td><textarea name="artikelbeschrijving" cols="30" rows="4"><?php echo $rij['omschrijving'] ?></textarea></td></tr>
    <tr><td>Prijs:</td><td><input type="text" name="artikelprijs" value='<?php echo $rij['prijs'] ?>' /></td></tr>
    <tr><td></td><td><input type="submit" name="artikelwijzigen" value="wijzig" /><input type="reset" value="reset"/></td></tr>
    </form>
    </table>

<?php
} elseif ($_SERVER['REQUEST_METHOD'] == '' && isset($_POST['artikelwijzigen'])) {

// HIER WORDT VERWERKT WANNEER MEN BIJ HET 2e FORMULIER DE WIJZIGINGEN HEEFT AANGEBRACHT EN OP SUBMIT GEKLIKT WORDT    
    
} else {        //ER IS NOG GEEN FORMULIER VERZONDEN
?>


<h2>Artikel wijzigen</h2>
<form action='' method='post'>
<table>
<tr><td>Selecteer een artikel:</td><td><select name='artikel'>
                                    <option value=''>Kies een artikel</option>
                                    <?php
                                    include('dbconnect.php');
                                    $sql_sel_art = "SELECT artikel_id, naam FROM artikel";
                                    $res_sel_art = mysql_query($sql_sel_art);
                                    while ($rij = mysql_fetch_assoc($res_sel_art)) {
                                        echo "<option value='". $rij['artikel_id'] ."'>". $rij['naam'] ."</option>\n";
                                    }

                                    mysql_close($db);
                                    ?>

                                    </select></td></tr>
<tr><td></td><td><input type='submit' name='next' value='volgende' /></td></tr>
</table>
</form>  
<?php
}
?>
Gewijzigd op 21/09/2012 18:17:53 door ch th
 
Flip --

Flip --

21/09/2012 18:16:54
Quote Anchor link
yup ik vat em, zie mn eerste post onder kopje 1)
en dan een "tweede" pagina ..

probeer dat uit te werken en als je nog een concrete vraag hebt post maar

kleine hint: als $_POST['artikel'] aanwezig is dan werkte het eerste form. En als je naar dezelfde pagina (bijna altijd dan hetzelfde bestand) dan zorg er voor dat je in het tweede form geen name="artikel" zet. Zo kan je onderscheiden of je in het eerste of tweede zit.
 
Ch th

ch th

21/09/2012 18:25:38
Quote Anchor link
nu is m'n probleem dat als ik dit test dat ik niet voorbij het eerste formulier geraak, wat volgens mij wel al mogelijk moet zijn want het eerste formulier is verzonden met post en er is op de knop "next" geklikt.

telkens als ik een artikel selecteer en op volgende klik, laadt hij terug het eerste formulier.

wat zou hier de oorzaak van kunnen zijn?
 
- SanThe -

- SanThe -

21/09/2012 19:01:46
Quote Anchor link
elseif ($_SERVER['REQUEST_METHOD'] == ''

Waarom ''? Moet dat niet 'post' zijn?
 
Ch th

ch th

21/09/2012 19:10:31
Quote Anchor link
hmm, inderdaad.
goed gezien ;) thnx

voorlopig kan ik al even verder.
 
Ch th

ch th

23/09/2012 10:17:53
Quote Anchor link
Ik denk dat ik er zowat klaar mee ben alleen krijg ik nog een aantal errors en weet ik niet hoe ik deze kan wegwerken.

errors:

Notice: Undefined index: artikel in ..\artikelwijzigen.php on line 92

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in ..\artikelwijzigen.php on line 94

Notice: Undefined variable: rij in ..\artikelwijzigen.php on line 101

Notice: Undefined variable: rij in ..\artikelwijzigen.php on line 105

EDIT: ik heb er even de code bijgezet

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
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['next'])) {        // eerste formulier gesubmit
    include('dbconnect.php');
    $error = array();
    
    if (!isset($_POST['artikel']) || trim($_POST['artikel']) == '') {
        $error['artikel'] = "Selecteer een artikel";
    }

    
    if (count($error) == 0) {        
        $sql_sel_art = "SELECT artikel_id, naam, omschrijving, prijs FROM artikel WHERE artikel_id='". $_POST['artikel'] ."'";
        $res_sel_art = mysql_query($sql_sel_art);
        $rij = mysql_fetch_assoc($res_sel_art);    
?>
    
        <h2>Artikel wijzigen</h2>
        <form action='' method='post'>
        <table>
        <tr><td>Artikelnaam:</td><td><input type="text" name="artikelnaam" value='<?php echo $rij['naam']?>' /></td></tr>
        <tr><td>Categorie:</td><td><select name='categorie'>
                                    <!--<option disabled='disabled'>kies een categorie</option>-->                                
                                    <option value=''>kies een categorie</option>
                                    <?php
                                        include("dbconnect.php");
                                        $sql = "SELECT categorie_id, naam FROM categorie";
                                        $result = mysql_query($sql);
                                        while ($rij2 = mysql_fetch_assoc($result)) {
                                            echo "<option value='" . $rij2['categorie_id'] ."'> ". $rij2['naam'] ."</option>\n";
                                        }

                                        mysql_close($db);
                                    ?>
    
        </select></td></tr>
        <tr><td>Beschrijving:</td><td><textarea name="artikelbeschrijving" cols="30" rows="4"><?php echo $rij['omschrijving'] ?></textarea></td></tr>
        <tr><td>Prijs:</td><td><input type="text" name="artikelprijs" value='<?php echo $rij['prijs'] ?>' /></td></tr>
        <tr><td></td><td><input type="submit" name="artikelwijzigen" value="wijzig" /><input type="reset" value="reset"/></td></tr>
        </form>
        </table>

<?php
    } else {        
?>

        <h2>Artikel wijzigen</h2>
        <form action='' method='post'>
        <table>
        <tr><td>Selecteer een artikel:</td><td><select name='artikel'>
                                            <option value=''>Kies een artikel</option>
                                            <?php
                                            include('dbconnect.php');
                                            $sql_sel_art = "SELECT artikel_id, naam FROM artikel";
                                            $res_sel_art = mysql_query($sql_sel_art);
                                            while ($rij = mysql_fetch_assoc($res_sel_art)) {
                                                echo "<option value='". $rij['artikel_id'] ."'>". $rij['naam'] ."</option>\n";
                                            }

                                            mysql_close($db);
                                            ?>

                                            </select></td></tr>
        <?php
        if (isset($error['artikel'])) {
            echo "<tr><td></td><td class='error'>". $error['artikel'] ."</td></tr>";
        }

        ?>


<tr><td></td><td><input type='submit' name='next' value='volgende' /></td></tr>
</table>
</form>  


<?php
    }
}
elseif ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['artikelwijzigen'])) {        //submit 2e formulier
    
    if (!isset($_POST['artikelnaam']) || trim($_POST['artikelnaam']) == '') {
        $error['artikelnaam'] = "Vul een artikelnaam in.";
    }

    
    if (!isset($_POST['categorie']) || $_POST['categorie'] == '') {
        $error['categorie'] = "Selecteer een categorie.";
    }

    
    if (!isset($_POST['artikelbeschrijving']) || trim($_POST['artikelbeschrijving']) == '' ) {
        $error['artikelbeschrijving'] = "Vul een beschrijving in.";
    }

    
    if (!isset($_POST['artikelprijs']) || trim($_POST['artikelprijs']) == '' || !is_numeric($_POST['artikelprijs'])) {
        $error['artikelprijs'] = "Vul een geldige prijs in.";
    }

    
    if (count($error) == 0) {
        $message = array();
        
        $sql_sel_cpa_id = "SELECT cpa_id FROM cpa WHERE artikel_id='". $_POST['artikel'] ."'";
        $res_sel_cpa_id = mysql_query($sql_sel_cpa_id);
        $cpa = mysql_fetch_assoc($res_sel_cpa_id);
        
        $sql_upd_art = "UPDATE artikel SET
                        naam='"
. mysql_real_escape_string(trim($_POST['artikelnaam'])) ."',
                        omschrijving='"
. mysql_real_escape_string(trim($_POST['artikelbeschrijving'])) ."',
                        prijs='"
. mysql_real_escape_string(trim($_POST['artikelprijs'])) ."'
                        
                        WHERE artikel_id='"
. $rij['artikel_id'] ."'";
                        
        
        $sql_upd_cpa = "UPDATE cpa SET
                        artikel_id='"
. $rij['artikel_id'] ."',
                        categorie_id='"
. $_POST['categorie'] ."'
                        
                        WHERE cpa_id='"
. $cpa['cpa_id'] ."'";
                        
        if (mysql_query($sql_upd_art) && mysql_query($sql_upd_cpa)) {
            $message['succes'] = "Het artikel is succesvol gewijzigd.";
            echo "<span class='succes'>". $message['succes'] ."</span>";
            header('REFRESH:3;');
        }
else {
            $message['error'] = "Het artikel kon niet gewijzigd worden.";
            echo "<span class='error'>". $message['error'] ."</span>";
        }
    }
else {
        ?>

        <h2>Artikel toevoegen</h2>
        <table>
        <form action="" method="post">
        <tr><td>Artikelnaam:</td><td><input type="text" name="artikelnaam" value="<?php if(isset($_POST['artikelnaam'])) { echo $_POST['artikelnaam'];}?>" /></td></tr>
        <?php
        if (isset($error['artikelnaam'])) {
        echo "<tr><td></td><td class='error'>". $error['artikelnaam'] ."</td></tr>";
        }

        ?>

        <tr><td>Categorie:</td><td><select name='categorie'>
                    <!--<option disabled='disabled'>kies een categorie</option>-->
                <option value=''>kies een categorie</option>
                <?php
                    include("dbconnect.php");
                    $sql = "SELECT categorie_id, naam FROM categorie";
                    $result = mysql_query($sql);
                    while ($rij = mysql_fetch_assoc($result)) {
                        echo "<option value='" . $rij['categorie_id'] ."'> ". $rij['naam'] ."</option>\n";
                    }

                    mysql_close($db);
                ?>
    
        </select></td></tr>
        <?php
        if (isset($error['categorie'])) {
        echo "<tr><td></td><td class='error'>". $error['categorie'] ."</td></tr>";
        }

        ?>

        <tr><td>Beschrijving:</td><td><textarea name="artikelbeschrijving" cols="30" rows="4"><?php if(isset($_POST['artikelbeschrijving'])) { echo $_POST['artikelbeschrijving'];}?>  </textarea></td></tr>
        <?php
        if (isset($error['artikelbeschrijving'])) {
        echo "<tr><td></td><td class='error'>". $error['artikelbeschrijving'] ."</td></tr>";
        }

        ?>

        <tr><td>Prijs:</td><td><input type="text" name="artikelprijs" value="<?php if(isset($_POST['artikelprijs'])) { echo $_POST['artikelprijs'];}?>" /></td></tr>
        <?php
        if (isset($error['artikelprijs'])) {
        echo "<tr><td></td><td class='error'>". $error['artikelprijs'] ."</td></tr>";
        }

        ?>

        <tr><td></td><td><input type="submit" name="toevoegen" value="toevoegen" /><input type="reset" value="reset"/></td></tr>
        </form>
        </table>
        

<?php
    }
    
}
else {        //er is nog niet gesubmit
?>


<h2>Artikel wijzigen</h2>
<form action='' method='post'>
<table>
<tr><td>Selecteer een artikel:</td><td><select name='artikel'>
                                    <option value=''>Kies een artikel</option>
                                    <?php
                                    include('dbconnect.php');
                                    $sql_sel_art = "SELECT artikel_id, naam FROM artikel";
                                    $res_sel_art = mysql_query($sql_sel_art);
                                    while ($rij = mysql_fetch_assoc($res_sel_art)) {
                                        echo "<option value='". $rij['artikel_id'] ."'>". $rij['naam'] ."</option>\n";
                                    }

                                    mysql_close($db);
                                    ?>

                                    </select></td></tr>
<tr><td></td><td><input type='submit' name='next' value='volgende' /></td></tr>
</table>
</form>  
<?php
}
?>
Gewijzigd op 23/09/2012 10:36:10 door ch th
 
Ch th

ch th

25/09/2012 20:54:51
Quote Anchor link
ik heb ondertussen een paar errors weggewerkt met behulp van hidden fields.

nu krijg ik enkel nog de 2 onderstaande errors. ik zou niet weten hoe dit komt dus heb ik even het stukje code geplaatst waar de mysql_fetch_assoc 's in staan.

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in ..\artikelwijzigen.php on line 96

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in ..artikelwijzigen.php on line 107

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
<?php
if (count($error) == 0) {
        $message = array();
        
        $sql_sel_art = "SELECT artikel_id, naam, omschrijving, prijs FROM artikel WHERE artikel_id='". $_POST['artikel'] ."'";
        $res_sel_art = mysql_query($sql_sel_art);
        $rij = mysql_fetch_assoc($res_sel_art);
        
        $sql_upd_art = "UPDATE artikel SET
                        naam='"
. mysql_real_escape_string(trim($_POST['artikelnaam'])) ."',
                        omschrijving='"
. mysql_real_escape_string(trim($_POST['artikelbeschrijving'])) ."',
                        prijs='"
. mysql_real_escape_string(trim($_POST['artikelprijs'])) ."'
                        
                        WHERE artikel_id='"
. $rij['artikel_id'] ."'";
                        
        $sql_sel_cpa_id = "SELECT cpa_id FROM cpa WHERE artikel_id='". $_POST['artikel'] ."'";
        $res_sel_cpa_id = mysql_query($sql_sel_cpa_id);
        $cpa = mysql_fetch_assoc($res_sel_cpa_id);
        
        $sql_upd_cpa = "UPDATE cpa SET
                        artikel_id='"
. $rij['artikel_id'] ."',
                        categorie_id='"
. $_POST['categorie'] ."'
                        
                        WHERE cpa_id='"
. $cpa['cpa_id'] ."'";
                        
        if (mysql_query($sql_upd_art) && mysql_query($sql_upd_cpa)) {
            $message['succes'] = "Het artikel is succesvol gewijzigd.";
            echo "<span class='succes'>". $message['succes'] ."</span>";
            header('REFRESH:3;');
        }
else {
            $message['error'] = "Het artikel kon niet gewijzigd worden.";
            echo "<span class='error'>". $message['error'] ."</span>";
        }

?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

26/09/2012 00:22:00
Quote Anchor link
waarschijnlijk is er iets mis met je query zoals een niet bestaande kolomnaam of tabelnaam of iets dergelijks. Je zou mysql_query() moet afvangen met een foutmelding
zoals
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $result = mysql_query($sql) or die ('query geeft foutmelding: '.mysql_error()); ?>
 
Frank WD

Frank WD

26/09/2012 02:20:51
Quote Anchor link
Het gebruik van " or die " is iets uit de stenen tijd perk.
Want niemand gaat na mijn weten dood als hij/zij iets fout doet.

Ik raad aan om een goede foutafhandeling te gebruiken.
Klik

Verder zeg je dat je fouten hebt verholpen door de inputs hidden te maken.
Ik denk dat je beter even kunt kijken waarom hij deze fout geeft. Want als je een Notice: Undefined index krijg betekend dit vaak dat de $var niet aanwezig is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Notice: Undefined index: artikel in ..\artikelwijzigen.php on line 92

$var artikel zal dus niet bestaan in het gedeelte code waar je het gebruikt.

Tevens zie ik in de code regelmatig deze voor bij komen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $rij['artikel_id'] ?>

Deze staan voornamelijk in de Query's. Deze kun je beter even controleren of het wel een cijfer is. Dit doe je door een (int)..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php (int) $rij['artikel_id']  ?>
Gewijzigd op 26/09/2012 02:28:10 door Frank WD
 
Ozzie PHP

Ozzie PHP

26/09/2012 06:20:36
Quote Anchor link
Frank WD op 26/09/2012 02:20:51:
Deze kun je beter even controleren of het wel een cijfer is. Dit doe je door een (int)..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php (int) $rij['artikel_id']  ?>

Frank, dit is geen controle wat jij doet. Jij typecast de variabele nu naar een int. Dat is iets anders dan controleren of het een int is.
 
Frank WD

Frank WD

26/09/2012 08:54:55
Quote Anchor link
Ozzie,

Bedankt voor de verbetering, ik heb het idd even verkeert uit gelegd.
 
Ch th

ch th

26/09/2012 11:27:34
Quote Anchor link
@ Frank WD:

ivm die variabelen die ik met de hidden field doorstuur;
het script werkt met 2 formulieren namelijk, als de pagina voor het eerst geladen wordt, moet er een artikel gekozen worden dus $_POST['artikel'].
maar deze geposte waarde heb ik ook nodig in het tweede formulier en als ik geen hidden fields gebruik heb ik die geposte waarde niet in het 2e formulier. bij mijn weten zouden geposte waarden superglobals moeten zijn en dus ook overal beschikbaar zijn, wat dus niet het geval is bij mij
Gewijzigd op 26/09/2012 11:27:57 door ch th
 
Ozzie PHP

Ozzie PHP

26/09/2012 12:33:18
Quote Anchor link
Dat zie je verkeerd. TIjdens een pagina-aanroep zijn de geposte waarden overal beschikbaar. Bij een volgende pagina-aanroep zijn ze weer weg. Je kunt hidden fields gebruiken om de waardes van formulier 1 aan formulier 2 door te geven, of je maakt gebruik van sessie variabelen.
 
Obelix Idefix

Obelix Idefix

26/09/2012 12:41:10
Quote Anchor link
Doorgeven via hidden fields betekent wel dat een ieder dit in de broncode kan manipuleren. Zou daarom kiezen voor sessie-variabelen.
 
Ch th

ch th

26/09/2012 13:27:09
Quote Anchor link
hmm. ik vind het vooral raar dat de geposte waarden niet gedurende het hele script beschikbaar blijven. is dit normaal?
 
Frank WD

Frank WD

26/09/2012 13:57:12
Quote Anchor link
Ja dit is normaal, vooral bij $_POST waardes zover ik weet.

Ik snap ook even niet waarom je $_POST waardes wilt door geven aan je 2e formulier.
Ja die opzet snap ik wel, alleen zoals Obelic zegt vallen die aan te passen in je broncode. Ik zou persoonlijk zoals Ozzie al aangaf sessie's gebruiken.

Dit heeft voordeel dat je niet telkens alles hoeft te laden en de waardes zijn overal beschikbaar tot de browser gesloten word. Ik zou daarom toch eens de optie van sessie's na kijken of dit voldoet aan jou ijzen in gebruik.
 
Eddy E

Eddy E

26/09/2012 15:07:39
Quote Anchor link
Waarom zou iemand (zelf ingevulde) POST-waarden nog willen veranderen?
Om eventuele controle (bijvoorbeeld emailadres) te wijzigen? Controleren doe je aan het het eind (eventueel nogmaals).
 

Pagina: 1 2 volgende »



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.