Data komt niet in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jurgen de Brouwer

Jurgen de Brouwer

17/05/2014 23:42:03
Quote Anchor link
Ik ben nieuwe met php en MYSQL.
Heb al veel geleerd.
Maar nu wil een formulier in mij database opslaan.
Naar ergens gaat er iets mis want er komt wel een nieuwe id maar geen data.
Weet iemand wat er fout gaat?

Formulier 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
<?php include ('info.php');

$db=mysql_connect($host, $username, $password)or die ($fout);

mysql_select_db ($dbnaam, $db) or die ($fout);

$query = "SELECT * FROM admin1";

$result = mysql_query($query);

while ($person = mysql_fetch_array($result)){
    echo "<h3>" . $person['scouting'] . "<h3>" ;
    echo "<h3>" . $person['naam'] . "<h3>" ;
}

?>

<h1>nieuwe toevoegen</h1>
<form action="aanmaken.php" methode="post">
    <input type="text" name="scouting" value="" />
    <input type="text" name="naam" value="" />
    <br />
    <input type="submit" name="submit" />
    
   </form>


aanmaken.php 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
<?php
    include 'info.php';
    
    mysql_select_db ($dbnaam, $db) or die ($fout);
    
    $scouting = $_POST['scouting'];
    $naam = $_POST['naam'];
    
$query="insert into admin1 (scouting,naam) values('$scouting','$naam')";

mysql_query($query)  or die(mysql_error());

echo "Your message has been received";
?>

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Gewijzigd op 18/05/2014 09:10:37 door - Ariën -
 
PHP hulp

PHP hulp

16/11/2024 20:52:17
 
- SanThe -

- SanThe -

17/05/2014 23:51:58
Quote Anchor link
Is er wel gepost? Dat controleer je nergens.
Query is lek => Zie SQL-Injection.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/05/2014 00:47:10
Quote Anchor link
Je mist de mysql_connect() functie in aanmaken.php

Paar tips als dat mag:
- mysql_* gaat er uit. voor flat php kun je overstappen op mysqli_* functies. Werkt nagenoeg hetzelfde.
- functies geven waarden terug. Ook PHP functies zoals mysql_connect() en mysql_select_db(). Soms kunnen die functies ook een foutmelding geven maar dan moet je daar wel wat mee doen. Als je dat namelijk gedaan had dan had je zelf allang ontdekt dat je vergat om te connecten.
- Wat gebeurt er nu als iemand direct naar aanmaken.php surft en dus helemaal niets post?
- Waarom gebruik je mysql_fetch_array() als je aan mysql_fetch_assoc() genoeg hebt? (Probeer eens uit te vinden wat het verschil is tussen die twee)
 
Jurgen de Brouwer

Jurgen de Brouwer

18/05/2014 00:48:06
Quote Anchor link
Is dit dan beter?

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

    include 'info.php';
    
    mysql_select_db ($dbnaam, $db) or die ($fout);
    
    $scouting = $_POST['scouting'];
    $naam = $_POST['naam'];
    
    if($_POST['submit'])    {
    echo "vult het formulier in";
    header('Location: index.php');
    }
    else {
    
$query="insert into admin1 (scouting,naam) values('$scouting','$naam')";

mysql_query($query)  or die(mysql_error());

echo "Your message has been received";
    }
?>


Volgens mij word er gepost omdat er een record bij komt in de database
 
- Ariën  -
Beheerder

- Ariën -

18/05/2014 09:13:13
Quote Anchor link
Nee, je controleer niet juist of je formulier verstuurd is. Ik raad je aan om eens naar deze 'boiler-template' van WouterJ te kijken:

https://github.com/WouterJ/sql-boilerplate/blob/master/mysql/query-insert.php

Dit geeft een goede flow aan over hoe je een formulier moet verzenden naar een database.
 
Obelix Idefix

Obelix Idefix

18/05/2014 09:20:14
Quote Anchor link
Nee.
Je maakt onnodig 2 nieuwe variabelen aan.
Je controleert niet eens of de $_POST waarden bestaan.
Daarna controleer je of er op een knop is gedrukt.
Als dat zo is, wordt een tekst getoond om een formulier in te vullen.
Je gebruikt nog steeds mysql.
Je hebt geen beveiliging om je variabelen.
 



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.