Script linken met formulier?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruben

Ruben

25/11/2009 12:06:00
Quote Anchor link
Ik heb een database met films
rijen Filmnummer, Naam, Genre, Jaar, Speelduur_in_min

ik wil dus de rij kunnen bewerken
Iemand tips hoe ik dit aan moet pakken?

Alvast bedankt


Edit:


Ben even helemaal opnieuw begonnen

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
<?php
if (isset($_GET['bewerk_Filmnummer']))
{

$bewerkfilm = mysql_real_escape_string($_GET['bewerk_Filmnummer']);
$bewerkdefilm = mysql_query("UPDATE filmdatabase WHERE Filmnummer ='$bewerkfilm'") or die (mysql_error());
}


$queryfilm = mysql_query("SELECT * FROM filmdatabase ORDER BY Naam");

while ($film = mysql_fetch_array($queryfilm)) {
echo '<a href="ophalen.php?Naam=';
echo $film['Naam'];
echo '">';
echo $film['Naam'];
echo '</a>   |   ';
echo '<a href="itembewerken.php?bewerk_Filmnummer=';
echo $film['Filmnummer'];
echo '">Bewerken</a><br />';
}

?>


Normaal staat de verbinding en layout er nog boven maar dat is niet van belang.

Hoe zorg ik er nu voor dat dit formulier (zie hieronder) te voor schijn komt als ik op bewerken klik?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<form name="itembewerken" method="post" action="itembewerken.php" class="box1">
        <fieldset><legend>Items bewerken:</legend>
        <p><label for="Naam">Naam:</label><input type='text' name="Naam" class="txt"/></p>
        <p><label for="Genre">Genre:</label><input type='text' name="Genre" class="txt"/></p>
        <p><label for="Jaar">Jaar:</label><input type='text' name="Jaar" class="txt"/></p>
        <p><label for="Speelduur_in_min">Speelduur in minuten:</label><input type='int' name="Speelduur_in_min"  class="txt"/></p>
        <p><input type='submit' name="submit" value='Verstuur' class="btn"/></p>
        </fieldset>
        </form>
Gewijzigd op 01/01/1970 01:00:00 door Ruben
 
PHP hulp

PHP hulp

24/11/2024 15:19:13
 
Bas IJzelendoorn

Bas IJzelendoorn

25/11/2009 12:12:00
Quote Anchor link
???

Ik reageer net op je topic van verwijderen graag. Ik zou je eerst even door willen verwijzen naar de F.A.Q. want jij hebt niet door wat php HULP inhoud. In elk geval niet php ZOEKWERKVOORNIKS.

en nu een nuttige reactie;

Welkom bij PHPhulp

Voor scripts -> raadplaag de library, tutorials of google!

Voor aanvragen -> maak dan een vacature conform de regels van PHPhulp. en vermeldt wat de vergoeding is.

Voor nutteloze vragen en onnodige topic -> laat dit forum met rust

Voor nuttige vragen waar je daadwerkelijk zelf als iets hebt zitten prutsen -> bedenk dan pas of het nuttig is een topic te plaatsen voor hulp.

Om dit menu nogmaals te lezen -> scroll naar boven


HOBBYLOOOS
Gewijzigd op 01/01/1970 01:00:00 door Bas IJzelendoorn
 
Kevin Stoove

Kevin Stoove

25/11/2009 12:59:00
Quote Anchor link
Even een vraagje... Filmnummer, dit is gewoon een auto_increment ID veld?
Verder is het verder vrij simpel, ik hou je website al een tijdje in de gaten (ben zelf ook bezig met een film/tv script, alleen wat groter) en weet nu wel zo'n beetje wat je kan.

Je moet gewoon de gegevens ophalen uit de database (makkelijkste is uiteraard via $_GET['id']) en die gegevens in arrays zetten. Vervolgens een formuliertje maken waarbij in elke input field bij value de array gezet word. Vervolgens kan je dat aanpassen, en verwerken op dezelfde manier als dat je een film post. Enkel gebruik je dan geen INSERT maar UPDATE. En uiteraard even een WHERE filmnummer = $_GET['id'].

Verder zoals Nimtex al aangeeft, let even op je posts. Probeer verder eerst zelf altijd iets en als je er niet uitkomt, laat hier even zien wat je geprobeerd hebt. Het is niet de bedoeling dat wij kant en klare scripts aan je geven natuurlijk. En kijk ook eens wat beter rond bij tutorials en scripts. Want voor wat jij hier zoekt staan er echt tientallen voorbeelden in de tutorials en scripts secties.

Verder succes met je website! Het is altijd een leuk iets om te doen, een film/tv website. Ikzelf ben momenteel druk bezig met een Nederlandse soort-van IMDB.
 
Ruben

Ruben

25/11/2009 13:04:00
Quote Anchor link
Ja het is een auto increment veld

Ik heb geprobeerd mijn script op items toe te voegen aan te passen, maar dit wou niet echt lukken
Ik zal nog even wat verder prutsen met je tips

Ik heb gezocht om voorbeelden maar die kon ik niet vinden,

Jij ook succes met je website
 
Ruben

Ruben

25/11/2009 13:11:00
Quote Anchor link
nimtex schreef op 25.11.2009 12:12:
???

Ik reageer net op je topic van verwijderen graag. Ik zou je eerst even door willen verwijzen naar de F.A.Q. want jij hebt niet door wat php HULP inhoud. In elk geval niet php ZOEKWERKVOORNIKS.

en nu een nuttige reactie;

Welkom bij PHPhulp

Voor scripts -> raadplaag de library, tutorials of google!

Voor aanvragen -> maak dan een vacature conform de regels van PHPhulp. en vermeldt wat de vergoeding is.

Voor nutteloze vragen en onnodige topic -> laat dit forum met rust

Voor nuttige vragen waar je daadwerkelijk zelf als iets hebt zitten prutsen -> bedenk dan pas of het nuttig is een topic te plaatsen voor hulp.

Om dit menu nogmaals te lezen -> scroll naar boven


HOBBYLOOOS


Ik heb hem aangepast hoor

Maar er zijn genoeg die dit ook doen -.-

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Ruben
 
Mr.Ark

Mr.Ark

25/11/2009 13:27:00
Quote Anchor link
Had toch niks te doen dus bij deze:

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
<?PHP

# Errors weergeven
error_reporting(E_ALL);

# Connectie met database
require_once 'database.php';

# Array message
$Message = array();
# Error is false
$Error = false;

# Kijken of er een id wordt meegezonden
if(!empty($_GET['id']) && ctype_digit($_GET['id']))
{

    # Query uitvoeren om de gegevens te selecteren
    $Query =
    "
        SELECT
            Naam,
            Genre,
            Jaar,
            Speelduur_in_min
        FROM
            films
        WHERE
            Filmnummer = '"
.intval($_GET['id'])."'
    "
;
    
    # Resultaat van de query
    $Result = mysql_query($Query);
    
    # Kijken of de query is gelukt
    if(!$Result)
    {

        # Foutje in query
        $Message[] = 'Fout opgetreden met selecteren, fout is: '.mysql_error();
        # Error true
        $Error = true;
    }

    else
    {
        # Kijken of id wel voorkomt in database
        if(mysql_num_rows($Result) == 0)
        {

            # Geen resultaat gevonden
            $Message[] = 'Er is geen resultaat gevonden met opgegeven id.';
            # Error true
            $Error = true;
        }

        else
        {
            # Info fetchen
            $Row = mysql_fetch_assoc($Result);
        }
    }
}

else
{
    # Geen id meegestuurd of het is geen cijfer
    $Message[] = 'Dit id is niet geldig.';
    # Error true
    $Error = true;
}


# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    # Kijken of er wel een naam is ingevuld
    if(empty($_POST['naam']))
    {

        # Geen naam ingevuld
        $Message[] = 'Vul a.u.b een naam in.';
        # Error true
        $Error = true;
    }

    
    # Kijken of er wel een genre is ingevuld
    if(empty($_POST['genre']))
    {

        # Geen genre ingevuld
        $Message[] = 'Vul a.u.b een genre in.';
        $Error = true;
    }

    
    # Kijken of er wel een jaar is ingevuld
    if(empty($_POST['jaar']) && !ctype_digit($_POST['jaar']))
    {

        # Geen gjaartal ingevuld
        $Message[] = 'Jaar moet ingevuld worden en een cijfer zijn.';
        $Error = true;
    }

    
    # Kijken of er wel een speelduur is ingevuld
    if(empty($_POST['speelduur']))
    {

        # Geen genre ingevuld
        $Message[] = 'Vul a.u.b de speelduur van de film in.';
        $Error = true;
    }

    
    # Kijken of er geen error is
    if($Error == false)
    {

        # Query uitvoeren
        $Query =
        "
            UPDATE
                films
            SET
                Naam = '"
.mysql_real_escape_string($_POST['naam'])."'
                Genre = '"
.mysql_real_escape_string($_POST['genre'])."'
                Jaar = '"
.intval($_POST['jaar'])."'
                Speelduur_in_min = '"
.mysql_real_escape_string($_POST['speelduur'])."'
            WHERE
                Filmnummer = '"
.intval($_GET['id'])."'
        "
;
        
        # Resultaat van de query
        $Result = mysql_query($Query);
        
        # Kijken of de query is gelukt
        if(!$Result)
        {

            # Foutje in query
            $Message[] = 'Fout opgetreden met updaten, fout is: '.mysql_error();
        }

        else
        {
            # Succesvol geupdate
            $Message[] = 'Film is succesvol bewerkt.';
        }
    }
}


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bewerk</title>
</head>

<body>
<?PHP

# Kijken of er een error is
if($Error == true)
{

    # Kijken of er een message is
    if(!empty($Message))
    {

        # Laat message zien
        foreach($Message as $Msg)
        {

            echo $Msg.'<br/>';
        }
    }
}

else
{
    # Laat hier je formulier zien.
    # Met $Row kan je de gegevens laten zien in de tekstvelden.
    # Voorbeeld

    echo '<input name="naam" type="text" id="naam" value="'.$Row['Naam'].'" />';
}


?>

</body>
</html>


Let op: is niet getest.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Ruben

Ruben

25/11/2009 13:44:00
Quote Anchor link
ik test hem even
 
Ruben

Ruben

25/11/2009 13:47:00
Quote Anchor link
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
<?PHP

# Errors weergeven
error_reporting(E_ALL);

# Connectie met database
require_once 'verbinding.php';

# Array message
$Message = array();
# Error is false
$Error = false;

# Kijken of er een id wordt meegezonden
if(!empty($_GET['id']) && ctype_digit($_GET['id']))
{

    # Query uitvoeren om de gegevens te selecteren
    $Query =
    "
        SELECT
            Naam,
            Genre,
            Jaar,
            Speelduur_in_min
        FROM
            filmdatabase
        WHERE
            Filmnummer = '"
.intval($_GET['id'])."'
    "
;
    
    # Resultaat van de query
    $Result = mysql_query($Query);
    
    # Kijken of de query is gelukt
    if(!$Result)
    {

        # Foutje in query
        $Message[] = 'Fout opgetreden met selecteren, fout is: '.mysql_error();
        # Error true
        $Error = true;
    }

    else
    {
        # Kijken of id wel voorkomt in database
        if(mysql_num_rows($Result) == 0)
        {

            # Geen resultaat gevonden
            $Message[] = 'Er is geen resultaat gevonden met opgegeven id.';
            # Error true
            $Error = true;
        }

        else
        {
            # Info fetchen
            $Row = mysql_fetch_assoc($Result);
        }
    }
}

else
{
    # Geen id meegestuurd of het is geen cijfer
    $Message[] = 'Dit id is niet geldig.';
    # Error true
    $Error = true;
}


# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    # Kijken of er wel een naam is ingevuld
    if(empty($_POST['naam']))
    {

        # Geen naam ingevuld
        $Message[] = 'Vul a.u.b een naam in.';
        # Error true
        $Error = true;
    }

    
    # Kijken of er wel een genre is ingevuld
    if(empty($_POST['genre']))
    {

        # Geen genre ingevuld
        $Message[] = 'Vul a.u.b een genre in.';
        $Error = true;
    }

    
    # Kijken of er wel een jaar is ingevuld
    if(empty($_POST['jaar']) && !ctype_digit($_POST['jaar']))
    {

        # Geen gjaartal ingevuld
        $Message[] = 'Jaar moet ingevuld worden en een cijfer zijn.';
        $Error = true;
    }

    
    # Kijken of er wel een speelduur is ingevuld
    if(empty($_POST['speelduur']))
    {

        # Geen genre ingevuld
        $Message[] = 'Vul a.u.b de speelduur van de film in.';
        $Error = true;
    }

    
    # Kijken of er geen error is
    if($Error == false)
    {

        # Query uitvoeren
        $Query =
        "
            UPDATE
                films
            SET
                Naam = '"
.mysql_real_escape_string($_POST['naam'])."'
                Genre = '"
.mysql_real_escape_string($_POST['genre'])."'
                Jaar = '"
.intval($_POST['jaar'])."'
                Speelduur_in_min = '"
.mysql_real_escape_string($_POST['speelduur'])."'
            WHERE
                Filmnummer = '"
.intval($_GET['id'])."'
        "
;
        
        # Resultaat van de query
        $Result = mysql_query($Query);
        
        # Kijken of de query is gelukt
        if(!$Result)
        {

            # Foutje in query
            $Message[] = 'Fout opgetreden met updaten, fout is: '.mysql_error();
        }

        else
        {
            # Succesvol geupdate
            $Message[] = 'Film is succesvol bewerkt.';
        }
    }
}


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bewerk</title>
</head>

<body>
<?PHP

# Kijken of er een error is
if($Error == true)
{

    # Kijken of er een message is
    if(!empty($Message))
    {

        # Laat message zien
        foreach($Message as $Msg)
        {

            echo $Msg.'<br/>';
        }
    }
}

else
{
    # Laat hier je formulier zien.
    # Met $Row kan je de gegevens laten zien in de tekstvelden.
    # Voorbeeld

    echo '<input name="naam" type="text" id="naam" value="'.$Row['Naam'].'" />';
}


?>

</body>
</html>


even aangepast naar eigen gegevens
uhm
ik krijg foutmelding
Dit id is niet geldig

gelijk als ik hem opstart zeg maar

Ik denk dat ik de fout al weet (A)
Er staat geen invoerveld etc in dit script, dus eerst even een script maken met invoervelden e.d.

Gelieve Niet Bumpen: Herhaling:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.


Edit:

Oh nee dat veld is er wel
Gewijzigd op 01/01/1970 01:00:00 door Ruben
 
Mr.Ark

Mr.Ark

25/11/2009 13:49:00
Quote Anchor link
Hou nou eens op met bumpen.

Je moet wel een id mee sturen, pagina.php?id=1 als voorbeeld zeg maar..
 
- SanThe -

- SanThe -

25/11/2009 13:51:00
Quote Anchor link
Dan is er (nog) geen $_GET en dat test je niet.
 
Ruben

Ruben

25/11/2009 13:52:00
Quote Anchor link
Sorry ik wist niet dat dat niet mocht
(bumpen, en dat bericht verwijderen)

hoe bedoel je dat?

Edit:


Ben even helemaal opnieuw begonnen

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
<?php
if (isset($_GET['bewerk_Filmnummer']))
{

$bewerkfilm = mysql_real_escape_string($_GET['bewerk_Filmnummer']);
$bewerkdefilm = mysql_query("UPDATE filmdatabase WHERE Filmnummer ='$bewerkfilm'") or die (mysql_error());
}


$queryfilm = mysql_query("SELECT * FROM filmdatabase ORDER BY Naam");

while ($film = mysql_fetch_array($queryfilm)) {
echo '<a href="ophalen.php?Naam=';
echo $film['Naam'];
echo '">';
echo $film['Naam'];
echo '</a>   |   ';
echo '<a href="itembewerken.php?bewerk_Filmnummer=';
echo $film['Filmnummer'];
echo '">Bewerken</a><br />';
}

?>


Normaal staat de verbinding en layout er nog boven maar dat is niet van belang.

Hoe zorg ik er nu voor dat dit formulier (zie hieronder) te voor schijn komt als ik op bewerken klik?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<form name="itembewerken" method="post" action="itembewerken.php" class="box1">
        <fieldset><legend>Items bewerken:</legend>
        <p><label for="Naam">Naam:</label><input type='text' name="Naam" class="txt"/></p>
        <p><label for="Genre">Genre:</label><input type='text' name="Genre" class="txt"/></p>
        <p><label for="Jaar">Jaar:</label><input type='text' name="Jaar" class="txt"/></p>
        <p><label for="Speelduur_in_min">Speelduur in minuten:</label><input type='int' name="Speelduur_in_min"  class="txt"/></p>
        <p><input type='submit' name="submit" value='Verstuur' class="btn"/></p>
        </fieldset>
        </form>
Gewijzigd op 01/01/1970 01:00:00 door Ruben
 



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.