om te beginnen is dit mijn code:

<?php
include("header.html");
include("dbinlog.php");
$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");

if(isset($_POST[invoeren])) {
$naam=$_POST[naam];
$naamklant=$_POST[naamklant];
$jaar=$_POST[jaar];
$maand=$_POST[maand];
$dag=$_POST[dag];
}
else {
}
$sql=" INSERT into structuur VALUES ( '','$naam','$naamklant','$jaar-$maand-$dag' ) ";
$res=mysql_db_query("$db","$sql",$mysql_id);

?>

<form action="<?php echo $_SERVER[PHP_SELF];?>" method="post">
<table>
</br><tr><td>Naam Van de kuisvrouw:</td><td><input type="text" name="naam"></td></tr>
</br><tr><td>Naam van de klant: </td><td><input type="text" name="naamklant"></td></tr>
<tr><td><input type="submit" name="invoeren" value="Gegevens invoeren"></td></tr>

<?php
echo 'Datum :<select name="dag">';
for($i_d=1;$i_d <= 31;$i_d++)
	{
	echo '<option value="'.$i_d.'">'.$i_d.'</option>';
	}
echo '</select>';

echo '<select name="maand">';
for($i_m=0;$i_m < 12;$i_m++)
	{
	$maanden = array('Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December');
	echo '<option value="'.($i_m+1).'">'.$maanden[$i_m].'</option>';
	}
echo '</select>';

echo '<select name="jaar">';
for($i_j=date('Y');$i_j >= 2007;$i_j--)
	{
	echo '<option value="'.$i_j.'">'.$i_j.'</option>';
	}
echo '</select>';
?>


</table>
</form>


<?php
include("footer.html");
?>

niks speciaals dus maar nu komt mijn vraag, iedere keer als ik een refresh doe stuurt hij alle gegevens naar mijn databse iedere keer een lege record toevoegt.

Hoe kan ik er voor zorgen dat hij dat alleen maar doet als er op gegevens versturen wordt geklikt ?

dank op voorhand !







als ik het zo doe dan steekt hij niks meer in de database


else {

$sql=" INSERT into structuur VALUES ( '','$naam','$naamklant','$jaar-$maand-$dag' ) ";
$res=mysql_db_query("$db","$sql",$mysql_id);
}


zo wel:


else {
}
$sql=" INSERT into structuur VALUES ( '','$naam','$naamklant','$jaar-$maand-$dag' ) ";
$res=mysql_db_query("$db","$sql",$mysql_id);

Opmerking: Deze functie wordt afgekeurd sinds PHP 4.0.6. Gebruik deze functie niet. Gebruik mysql_select_db() en mysql_query() in plaats daarvan.


http://www.php.net/mysql_db_query

[php]mysql_query[/php] gebruiken^^

[edit]Zie m'n vorige edit trouwens mathias[/edit]
mebus schreef op 06.08.2007 19:29
Héé gamer bla bla zeur volgende keer niet zo oké!

O_o Hoe bedoel je?
GaMer13 schreef op 06.08.2007 19:38
[quote='mebus schreef op 06.08.2007 19:29']Héé gamer bla bla zeur volgende keer niet zo oké!

O_o Hoe bedoel je?[/quote]

Met dat dubbelposten ik snapte niet wat z'n probleem nu was echt.. Maar stelde dus nog wel een nuttige vraag dus helemaal een dubbelpost was het nog niet vond ik^^ na ja help help help hem!
Even over de SQL:
<?
$sql=" INSERT into structuur VALUES ( '','$naam','$naamklant','$jaar-$maand-$dag' ) ";
?>
Dit werkt in MySQL maar is geen correcte SQL, de kolomnamen ontbreken. Ga je met een andere database werken, dan ben je de lul. Tevens kom je in de problemen op het moment dat er bugs in je systeem zitten (en dat is altijd het geval) of wanneer je onderhoud gaat plegen. Je gaat gegarandeerd kolommen door elkaar heen gooien en zo de data naar de bliksem helpen.

Oplossing: Noteer ook de kolomnamen in de query en gebruik een overzichtelijke syntax.

Voorbeeldje:
<?
$sql = "
INSERT INTO
structuur (
kolom1,
naam,
naamklant,
datum
)
VALUES (
'',
'".$naam."',
'".$naamklant."',
'".$jaar."-".$maand."-".$dag."'
)
";
?>
De datum controleer je trouwens nergens, net zo min als dat MySQL dat doet. Daar kan dus de grootst mogelijke onzin in komen te staan. Gebruik de PHP-functie datecheck() om problemen te voorkomen.

De kolomnaam 'kolom1' moet je even aanpassen aan jouw situatie. Wanneer dit het id is met auto_increment, dan kun je deze kolomnaam én de (lege) waarde weglaten.
pgFrank schreef op 06.08.2007 19:44
..... Gebruik de PHP-functie datecheck() om problemen te voorkomen.......

Kleine correctie: [php]checkdate()[/php].
SanThe schreef op 06.08.2007 20:23
[quote='pgFrank schreef op 06.08.2007 19:44']..... Gebruik de PHP-functie datecheck() om problemen te voorkomen.......

Kleine correctie: [php]checkdate()[/php].[/quote]Bedankt! Ben de juiste naam dus blijkbaar vergeten...

Verwent met PostgreSQL, dan hoef je dit soort controles niet te doen, dat regelt de database wel voor je. Een datum is tenslotte een datum, dat weet een goede database ook wel!

Reageren