Vraag & Antwoord

Webprogrammeren & scripting

Gegevens toevoegen aan mysql database d.m.v html formulier

Anoniem
Gooly
3 antwoorden
  • Ik heb een website gemaakt waarbij het mogelijk is om gegevens op te vragen uit een mysql database. Daar moet alleen nog een beheerders pagina bij. Het is de bedoeling dat er met een html formulier gegevens worden toegevoegt aan de database. Ik heb al verscheidene tutorials geprobeerd zonder succes. Misschien dat iemand hier de fout kan oplossen. Ik heb nog niet zo heel veel ervaring met PHP dus het kan heel goed zijn dat ik allemaal dingen door elkaar heen gehaald heb.

    <?

    // deze variabelen vervangen met je Mysql server / database gegevens

    $hostname = "locahost";
    $username = "235301";
    $password = "235301";
    $database = "235301";

    // Functie om eventuele MySQL errors te specificeren

    function showerror()
    {
    die("Error" .mysql_errno() . " : " . mysql_error());
    exit;
    }

    // MySQL connectie maken

    if (!($connection= @ mysql_connect($hostname, $username, $password))) showerror();


    // specificeren welke database op de MySQL server we gebruiken

    if (!mysql_select_db($database, $connection))
    showerror();


    // formulier POST variabelen ophalen

    $film = $_POST['naam'];
    $jaar = $_POST['jaar'];
    $genre = $_POST['genre'

    // sql insert die je in de database gaat doen

    $sql ="INSERT INTO FILMS(filmnaam, filmjaar, filmgenre)
    VALUES ('".$film."', '".$jaar."', '".$genre."')";

    //uitvoeren van de query :

    if (!($temp = mysql_query($sql,$connection)))
    showerror();
    ?>


    </body>
    </html>
  • ik zie zo op het eerste gezicht een paar fouten:
    [code:1:b14b98d18b]if (!($connection= @ mysql_connect($hostname, $username, $password))) showerror();
    [/code:1:b14b98d18b]
    moet zijn
    [code:1:b14b98d18b]
    if (!($connection= MySql_connect($hostname, $username, $password)))
    {
    showerror();
    }
    [/code:1:b14b98d18b]
    Het aanroepen van de showerror functie dient tussen accolades te staan.
    verder heb je nu wel verbinding, maar je moet nog een database selecteren en dat zie ik in het script nergens gebeuren.
    Dat gaat bijvoorbeeld zo
    [code:1:b14b98d18b]
    mysql_select_db($database) or die(msql_error());
    [/code:1:b14b98d18b]
    De database selecteren doe ik over het algemeen direct na het connecten.

    [edit achteraf]
    Ik zie nu achteraf dat je wel degelijk een database selecteert (In tegenstelling tot wat ik eerder beweerde.)
    Maar ook daar zit dezelfde accolade fout in
    [code:1:b14b98d18b]if (!mysql_select_db($database, $connection))
    showerror(); [/code:1:b14b98d18b]
    wordt dan
    [code:1:b14b98d18b]if (!mysql_select_db($database, $connection))
    {
    showerror();
    }[/code:1:b14b98d18b]
    [/edit achteraf]
  • Voor zover ik weet is het niet nodig om de accolades te plaatsen indien er nog maar één commando volgt op het if-statement. Het is wel overzichtelijker, dus waarschijnlijk wel aan te raden.

    Misschien is het probleem dat je [i:41e9c09c3f]locahost[/i:41e9c09c3f] gebruikt ipv [i:41e9c09c3f]loca[b:41e9c09c3f]l[/b:41e9c09c3f]host[/i:41e9c09c3f]?

    - Bas

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.