database bewerken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruud

ruud

12/01/2007 14:45:00
Quote Anchor link
Ik weet hoe je in phpmyadmin dingen in je database kan bewerken. Op sommige sites zie je het in een andere pagina bewerkt (bijvoorbeeld edt.php) en dan kan je in allerlei invulvakjes alles veranderen. Als je het dan opslaat, is je database ook bijgewerkt.

hoe moet je dat maken? Zo'n pagina waarin je je gegevens van je database kan bewerken?
 
PHP hulp

PHP hulp

19/11/2024 17:33:58
 
- wes  -

- wes -

12/01/2007 14:52:00
Quote Anchor link
met php bijvoorbeeld. maar vraag nou eens wat je echt wil
 
Ruud

ruud

12/01/2007 14:59:00
Quote Anchor link
Sorry dat het zo onduidelijk was. Ik vind het namelijk moeilijk om uit te leggen.

Hier een screenshot met wat ik bedoel:
http://i9.photobucket.com/albums/a58/Azur_Ugluk/php.jpg

Als je in de veldjes dingen invult, dan wordt dat doorgegeven aan de database die het dan verwerkt. Ik wil zoiets maken, maar hoe doe je dat?
 
Crispijn -

Crispijn -

12/01/2007 15:41:00
Quote Anchor link
Nou, je klust eerst een simpel formulier in elkaar. Gewoon voor het zicht. Daarna ga je de geposte info die in je formulier staat afhandelen.

Wat wil je precies gaan bewerken?

zoek onder scripts eens op formulieren. Dat levert een hoop resultaten op!
 
Ruud

ruud

12/01/2007 17:31:00
Quote Anchor link
het volgende wil ik bewerken:
- type
- registratie
- maatschappij
- waar is foto genomen
- datum
- naam fotograaf
- commentaar
- URL foto
 
- wes  -

- wes -

12/01/2007 17:34:00
Quote Anchor link
das heel mooi, begin maar te coden dan

(even voor jou eigen duidelijkheid, we doen phphulp, niet phpvoorkauw)
 
Stefan van Iwaarden

Stefan van Iwaarden

12/01/2007 18:02:00
Quote Anchor link
Het is misschien niet verstandig, maar omdat je nog totaal niet bekend bent met php / mysql heb ik wat voor je geschreven. Ik zou het op prijs stellen als je het goed doorleest zodat je het snapt. Want dan kan je het de volgende keer misschien (grotendeels) zelf.

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
<?php
mysql_connect("localhost","gebruikersnaam","wachtwoord");
mysql_select_db("databasenaam");

if ($_SERVER['REQUEST_METHOD'] == "POST") //controle of er op de submit knop gedrukt is
{
    extract($_POST); //alle ingevulde informatie ophalen, deze worden in een variabele gestopt met dezelfde naam als het veld.

    // de query voor het invoegen in de database.

    $query    = "INSERT INTO
                        fotos
                    (type,
                    registratie,
                    maatschappij,
                    waar,
                    datum,
                    naamfotograaf,
                    commentaar,
                    urlfoto)
                VALUES
                    ('"
.$type."',
                    '"
.$registratie."',
                    '"
.$maatschappij."',
                    '"
.$waar."',
                    '"
.$datum."',
                    '"
.$naamfotograaf."',
                    '"
.$commentaar."',
                    '"
.$urlfoto."')";
    $result    = mysql_query($query) or die (mysql_error()); //de foutafhandeling geeft een foutmelding als de query mislukt.

    header("Location: pagina.php"); // dit is voor het doorsturen naar een andere pagina na het submitten, pagina zelf even veranderen.
}
else // is er niet op de submit knop gedrukt, dan het formulier weergeven.
{
?>

    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <table>
    <tr>
        <td>Type</td>
        <td><input type="text" name="type" id="type"></td>
    </tr>
    <tr>
        <td>Registratie</td>
        <td><input type="text" name="registratie" id="registratie"></td>
    </tr>
    <tr>
        <td>Maatschappij</td>
        <td><input type="text" name="maatschappij" id="maatschappij"></td>
    </tr>
    <tr>
        <td>Waar genomen?</td>
        <td><input type="text" name="waar" id="waar"></td>
    </tr>
    <tr>
        <td>Datum</td>
        <td><input type="text" name="dag" id="dag" size="1"> - <input type="text" name="maand" id="maand" size="1"> - <input type="text" name="jaar" id="jaar" size="2"></td>
    </tr>
    <tr>
        <td>Naam Fotograaf</td>
        <td><input type="text" name="naamfotograaf" id="naamfotograaf"></td>
    </tr>
    <tr>
        <td>Commentaar</td>
        <td><input type="text" name="commentaar" id="commentaar"></td>
    </tr>
    <tr>
        <td>URL Foto</td>
        <td><input type="text" name="urlfoto" id="urlfoto"></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="submit" id="submit" value="Opslaan"></td>
    </tr>
    </table>
    </form>
<?php    
}
?>


Let er bij het maken van de database op dat je alle velden van het goede type maakt, en dat je er ook nog een kolom id bij zet.

Ik heb het nu allemaal gewoon tekstvelden gemaakt, maar het is misschien verstandiger om bijv. de fotograaf een selectieveld te maken. Dat wordt het script als volgt.
Je dient dan wel een extra tabel te maken met de namen van de fotografen erin. En het veld naamfotograaf moet veranderd worden naar een INT.

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
<?php
mysql_connect("localhost","gebruikersnaam","wachtwoord");
mysql_select_db("databasenaam");

if ($_SERVER['REQUEST_METHOD'] == "POST") //controle of er op de submit knop gedrukt is
{
    extract($_POST); //alle ingevulde informatie ophalen, deze worden in een variabele gestopt met dezelfde naam als het veld.

    // de query voor het invoegen in de database.

    $query    = "INSERT INTO
                        fotos
                    (type,
                    registratie,
                    maatschappij,
                    waar,
                    datum,
                    naamfotograaf,
                    commentaar,
                    urlfoto)
                VALUES
                    ('"
.$type."',
                    '"
.$registratie."',
                    '"
.$maatschappij."',
                    '"
.$waar."',
                    '"
.$datum."',
                    '"
.$naamfotograaf."',
                    '"
.$commentaar."',
                    '"
.$urlfoto."')";
    $result    = mysql_query($query) or die (mysql_error()); //de foutafhandeling geeft een foutmelding als de query mislukt.

    header("Location: pagina.php"); // dit is voor het doorsturen naar een andere pagina na het submitten, pagina zelf even veranderen.
}
else // is er niet op de submit knop gedrukt, dan het formulier weergeven.
{
    //query voor het ophalen van alle fotograven welke later weergegeven zullen worden in een lijst.
    $query    = "SELECT
                    id,
                    naam
                FROM
                    fotografen"
;
    $result    = mysql_query($query) or die (mysql_error());
?>

    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <table>
    <tr>
        <td>Type</td>
        <td><input type="text" name="type" id="type"></td>
    </tr>
    <tr>
        <td>Registratie</td>
        <td><input type="text" name="registratie" id="registratie"></td>
    </tr>
    <tr>
        <td>Maatschappij</td>
        <td><input type="text" name="maatschappij" id="maatschappij"></td>
    </tr>
    <tr>
        <td>Waar genomen?</td>
        <td><input type="text" name="waar" id="waar"></td>
    </tr>
    <tr>
        <td>Datum</td>
        <td><input type="text" name="dag" id="dag" size="1"> - <input type="text" name="maand" id="maand" size="1"> - <input type="text" name="jaar" id="jaar" size="2"></td>
    </tr>
    <tr>
        <td>Naam Fotograaf</td>
        <td><select name="naamfotograaf" id="naamfotograaf">
        <?php
        while ($row = mysql_fetch_array($result) //while loop wordt net zolang herhaald totdat alle records geselecteerd in de query afgegaan zijn.
        {
            echo('<option value="'.$row['id'].'">'.$row['naam'].'</option>');
        }

        ?>

        </select>
        </td>
    </tr>
    <tr>
        <td>Commentaar</td>
        <td><input type="text" name="commentaar" id="commentaar"></td>
    </tr>
    <tr>
        <td>URL Foto</td>
        <td><input type="text" name="urlfoto" id="urlfoto"></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="submit" id="submit" value="Opslaan"></td>
    </tr>
    </table>
    </form>
<?php    
}
?>


Tot slot moet je uiteraard nog wel je gebruikersnaam en wachtwoord enz invullen in de connectiegegevens.
 
- SanThe -

- SanThe -

12/01/2007 19:12:00
Quote Anchor link
@Stefan van Iwaarden: Eigenlijk ben jij te goed voor deze wereld. ;-))
Ik vind het heel jofel wat je doet, maar ik moet nu toch even melden (niet om te zeuren, maar voor de netheid en veiligheid) dat ik de errorafhandeling mis en dat je script mysql-injection gevoelig is.
 
Frank -

Frank -

13/01/2007 11:38:00
Quote Anchor link
Offtopic: Is $datum die je in de kolom 'datum' opslaat wel een datum? Sla je deze dus wel op in een DATE, er wordt namelijk helemaal nergens gecontroleerd of er wel het juiste formaat wordt gebruikt (yyyy-mm-dd) en of de datum wel correct is. MySQL heeft geen enkele moeite met de datum 2007-02-29 ondanks dat deze datum helemaal niet bestaat.

Pas dit z.s.m. aan, gebruik dus een DATE om een datum in op te slaan en gebruik de functie checkdate() om te controleren of de datum wel correct is. Doe je dat niet, kom je gegarandeerd in de problemen.
 



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.