[php] Dubbele invoer in database

Pagina: 1
Acties:
  • 154 views sinds 30-01-2008
  • Reageer

  • reskobon
  • Registratie: November 2001
  • Laatst online: 15-09 21:07
Hallo

ik heb een scriptje gemaakt die cd titels kan invoeren in een database. Best leuk maar het rare is dat als je na het opslaan in de database kijkt heeft hij er 2 ingevoerd
- degene die de user heeft ingevuld
- een leeg record

hoe zou dit kunnen ik denk dat er een fout zit in mijn code dus die geef ik maar even hieronder:

[php]

<HTML>
<HEAD>
<TITLE>Invoeren</TITLE>
<META NAME="Generator" CONTENT="">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY bgcolor="#CCCCCC">
<?php

mysql_connect("localhost");
mysql_select_db("robje");

$artiest = addSlashes($artiest);
$titel = addSlashes($titel);
$aantal_cd = addSlashes($aantal_cd);
$user = addSlashes($user);

$SQL = "INSERT INTO cd2 (artiest,titel,aantal_cd,user) VALUES ('$artiest','$titel','$aantal_cd','$user')";
mysql_query($SQL) or die (mysql_error());

$artiest= $cd2->artiest;
$titel= $cd2->titel;
$aantal_cd= $cd2->aantal_cd;
$user= $cd2->user;
?>

<form action="" method="post">
<p align="left">Artiest:
<input type="text" name="artiest">
<br>
Titel: &nbsp&nbsp
<input type="text" name="titel" value="">
<br>
Aantal cd's:
<select name="aantal_cd">
<option selected>1 </option>
<option>2 </option>
<option>3 </option>
<option>4</option>
</select>
<br>
</p>
<blockquote>
<p>
<input type="submit" name="submit" value="Opslaan">
<br>
</p>
</blockquote>
</form>
</BODY>
</HTML>

[php]

Het rare is dat ik ook een formulier heb om users toe te voegen maar deze doet dit niet??

Leeg


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

eerste keer dat jij je formulier opvraagt voegt hij een leeg record toe, druk dan eens 10 keer op reload en kijk in je database.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • reskobon
  • Registratie: November 2001
  • Laatst online: 15-09 21:07
ja klopt daar komt het ook door maar hoe los ik dit op
want nu krijg ik allemaal lege velden in mijn db dat wordt er niet mooier op

Leeg


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 28 december 2001 15:32 schreef robje het volgende:
ja klopt daar komt het ook door maar hoe los ik dit op
want nu krijg ik allemaal lege velden in mijn db dat wordt er niet mooier op
www.php.net/isset www.php.net/is_numeric www.php.net/is_string etc

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 28 december 2001 15:32 schreef robje het volgende:
ja klopt daar komt het ook door maar hoe los ik dit op
want nu krijg ik allemaal lege velden in mijn db dat wordt er niet mooier op
Wat dacht je van controleren of er waardes in de velden zitten :?

[en kom nou niet aan met hoe doe ik dat, maar zoek dan eerst ff een uurtje daarop]

edit: damn acm :)

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 28 december 2001 15:32 schreef robje het volgende:
ja klopt daar komt het ook door maar hoe los ik dit op
want nu krijg ik allemaal lege velden in mijn db dat wordt er niet mooier op
if parameter=leeg laat dan form zien
anders
submit data

edit:
whooooooo, snelle jongens hier ;)

Who is John Galt?


  • reskobon
  • Registratie: November 2001
  • Laatst online: 15-09 21:07
Sorry sorry maar ik ben nog maar kort bezig met php dus ik vraag gewoon stomme dingen zal proberen ze op te zoeken voortaan.
Bedankt voor de oplossing ik ga het proberen

Leeg


  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 15-09 10:24

Kippenijzer

McFallafel, nu met paardevlees

Inderdaad, jij laat bij het laden van je pagina sowiezo die query uitvoeren, je mpoet dus inderdaad eentje maken die pas de query uitvoert als er aan bepaalde dingen is voldaan... Zoals dat alle velden een waarde hebben...

Gewoon met een mooie if clausule...

Verwijderd

Op vrijdag 28 december 2001 15:36 schreef robje het volgende:
Sorry sorry maar ik ben nog maar kort bezig met php dus ik vraag gewoon stomme dingen zal proberen ze op te zoeken voortaan.
Bedankt voor de oplossing ik ga het proberen
PHP:
1
2
3
4
5
6
<?
if ($action == "add")
{
   //voeg toe aan database
}
?>

en dan in je formpje het volgende er bij zetten:
code:
1
<input type=hidden name=action value=add>

That 'll do it i guess!

  • ikke_
  • Registratie: Juni 1999
  • Laatst online: 15-09 06:46
oplossing
1. de input van de velden en de form post actie na invullen naar een andere pagina sturen!
2. controleren of de request_method get of post is

maar dit is allemaal nogal basic html en heeft niet veel met php te maken

Verwijderd

Op vrijdag 28 december 2001 15:54 schreef ikke_ het volgende:
1. de input van de velden en de form post actie na invullen naar een andere pagina sturen!
Andere pagina? Als je dat bij elke actie gaat doen dan kom je op een gegeven moment om in de files en zie je door de bomen het bos niet meer.
2. controleren of de request_method get of post is
:? Waarom? In zijn source staat toch al dat ie post gebruikt? Lijkt mij beetje onzinnig om dan nogmaals te gaan kijken wat het nou was...

  • ikke_
  • Registratie: Juni 1999
  • Laatst online: 15-09 06:46
- bomen het bos niet meer :?, de ene file is bv _invoer de andere _action (scheiden van invoer html en actie in db)

- als je het op die manier in file wil kan je gewoon om de DB actie zetten dat deze alleen op een post request uitgevoerd moet worden, if post then dbqueries
Pagina: 1