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

<?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";
?>

Is er wel gepost? Dat controleer je nergens.
Query is lek => Zie SQL-Injection.
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)
Is dit dan beter?

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


Reageren