login  Naam:   Wachtwoord: 
Registreer je!
 Forum

INSERT in db werkt niet

Offline Juser - 25/05/2006 10:52 (laatste wijziging 25/05/2006 10:52)
Avatar van JuserMySQL interesse Ik heb een form waarbij ik twee waarden moet ingeven, en een tabel waar meerdere rijen in staan. Als ik iets toevoeg d.m.v. het form dan wordt er wel een nieuwe rij toegevoegd, maar er wordt niks ingezet?!?!

Dit is de table:
CREATE TABLE `nieuwsbriefontvangers` (
`id` int(11) NOT NULL auto_increment,
`voornaam` varchar(200) default NULL,
`tussenvoegsel` varchar(50) default NULL,
`achternaam` varchar(200) default NULL,
`adres` varchar(100) NOT NULL default '',
`huisnummer` varchar(50) NOT NULL default '',
`huisnummertoevoeging` char(2) NOT NULL default '',
`postcode` varchar(10) NOT NULL default '',
`woonplaats` varchar(100) NOT NULL default '',
`telefoon` varchar(12) NOT NULL default '',
`fax` varchar(12) NOT NULL default '',
`email` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


En het form.:
  1. <FORM METHOD="POST" ACTION="<?php ECHO"?pagina=iframe/nieuwsbriefframe.php";?>">
  2. <TR>
  3. <TD WIDTH="195 PX" HEIGHT="30 PX" COLSPAN="4" VALIGN="TOP">
  4. <P ALIGN="CENTER">
  5. <FONT COLOR="#000000" SIZE="2" FACE="TAHOMA">
  6. <B>Nieuwsbrief | Aanmelden</B>
  7. </FONT>
  8. </P>
  9. </TD>
  10. </TR>
  11. <TR>
  12. <TD WIDTH="10 PX" HEIGHT="40 PX" ROWSPAN="2">
  13. </TD>
  14. <TD WIDTH="80 PX" HEIGHT="20 PX">
  15. <FONT COLOR="#000000" SIZE="2" FACE="TAHOMA">
  16. Naam:
  17. </FONT>
  18. </TD>
  19. <TD WIDTH="95 PX" HEIGHT="20 PX">
  20. <INPUT TYPE="TEXT" NAME="voornaam" SIZE="20">
  21. </TD>
  22. <TD WIDTH="10 PX" HEIGHT="40 PX" ROWSPAN="2">
  23. </TD>
  24. </TR>
  25. <TR>
  26. <TD WIDTH="80 PX" HEIGHT="20 PX">
  27. <FONT COLOR="#000000" SIZE="2" FACE="TAHOMA">
  28. E-mail:
  29. </FONT>
  30. </TD>
  31. <TD WIDTH="95 PX" HEIGHT="20 PX">
  32. <INPUT TYPE="TEXT" NAME="email" SIZE="20">
  33. </TD>
  34. </TR>
  35. <TR>
  36. <TD WIDTH="195 PX" HEIGHT="30 PX" COLSPAN="4" VALIGN="TOP">
  37. <P ALIGN="CENTER">
  38. <INPUT TYPE="SUBMIT" NAME="OK" VALUE=" Aanmelden ">
  39. </P>
  40. </TD>
  41. </TR>
  42. </FORM>


Het is wel zo dat het form d.m.v. een tussenliggend bestand moet worden geupload omdat de uiteindelijke context in een iframe moet komen.. maar dit kan toch:?:

Dit is iig het uiteindelijke insertscript:
  1. <?
  2. INCLUDE("../connect.php");
  3.  
  4. $sql="insert into nieuwsbriefontvangers
  5. (id,voornaam,email)
  6. values
  7. ('".$id."','".$voornaam."','".$email."')";
  8. $result = mysql_query($sql) or die(mysql_error());
  9. ?>
  10. <BODY BACKGROUND="../image/iframeback.jpg" BGPROPERTIES="FIXED">
  11. <TABLE WIDTH="625 PX" HEIGHT="410 PX" BORDER="0" BORDERPROPERTIES="0" CELLPADDING="0" CELLSPACING="0">
  12. <TR>
  13. <TD WIDTH="10 PX" HEIGHT="410 PX" VALIGN="TOP">
  14. </TD>
  15. <TD WIDTH="605 PX" HEIGHT="410 PX" VALIGN="TOP">
  16. <P ALIGN="CENTER">
  17. <FONT COLOR="#000000" SIZE="3" FACE="TAHOMA">
  18. <B>Aangemeld</B>
  19. </FONT>
  20. <BR><BR>
  21. <FONT COLOR="#000000" SIZE="2" FACE="TAHOMA">
  22. Bedankt voor het aanmelden van de nieuwsbrief.
  23. </FONT>
  24. </P>
  25. </TD>
  26. </TD WIDTH="10 PX" HEIGHT="410 PX" VALIGN="TOP">
  27. </TD>
  28. </TR>
  29. </TABLE>
  30. </BODY>

14 antwoorden

Gesponsorde links
Offline finduilas - 25/05/2006 10:58
Avatar van finduilas PHP gevorderde Ik geloof niet dat je Id moet inserten.Dat gebeurt automatisch.
Offline Juser - 25/05/2006 11:04
Avatar van Juser MySQL interesse Ik heb dat bij alle andere scripts er wel bij zitten, en dit werkt verder ook goed..
Offline kokx - 25/05/2006 11:08
Avatar van kokx Onbekend Laat die id toch maar weg. Het hoort dan gewoon te werken.
Offline Juser - 25/05/2006 11:12
Avatar van Juser MySQL interesse Resultaat blijft helaas 'tzelfde, hij maakt de rij wel aan.. komt doordat ik een aantal zaken op default NULL heb staan, die voegt hij wel in, maar de voornaam en email laat hij leeg.
Offline Xtent - 25/05/2006 11:16
Avatar van Xtent Onbekend Waar haal je $voornaam en $email vandaan?
Offline kokx - 25/05/2006 11:17
Avatar van kokx Onbekend Echo de waardes van $voornaam en $email eens. En zet ze hier neer.
Offline Juser - 25/05/2006 11:21
Avatar van Juser MySQL interesse @Xtent:
Die waardes worden van het form meegegeven.

@Kokx:
Die waardes in de db blijven leeg.
Offline TriX - 25/05/2006 11:21 (laatste wijziging 25/05/2006 11:22)
Avatar van TriX HTML interesse doe eerst is:

$voornaam = $_POST['voornaam'];
$email= $_POST['email'];

Anders kent ie de variabelen tog niet!


en dit is ook een beetje eng:

ACTION="<?php ECHO"?pagina=iframe/nieuwsbriefframe.php";?>"
Offline Jim - 25/05/2006 11:26
Avatar van Jim Lid ik mis een paar dingen...

  1. <?
  2. INCLUDE("../connect.php");
  3.  
  4. $sql="insert into nieuwsbriefontvangers
  5. (id,voornaam,email)
  6. values
  7. ('".$id."','".$voornaam."','".$email."')";
  8. $result = mysql_query($sql) or die(mysql_error());
  9. ?>


Waar komen $email en $voornaam vandaan? $id is trouwens niet nodig, dat gebeurd automatisch ;)

het lijkt me dat het dan iets als dit moet worden:

  1. <?php
  2.  
  3. require_once('.../connect.php');
  4.  
  5. //alle strings op jouw manier erin zetten ->
  6.  
  7. $voornaam = $_POST['voornaam'];
  8. $email = $_POST['email'];
  9.  
  10. //je moet wel zelf even de controle maken... iets van
  11. //if(!empty($_POST['email'] && !empty($_POST['voornaam'])){ ... }
  12.  
  13. mysql_query("INSERT into nieuwsbriefontvanger(voornaam, email) VALUES ('".$voornaam."','".$email."');");
  14.  
  15. ?>


Zelf even de strings aanpassen dan hè ;)
Offline Juser - 25/05/2006 11:47
Avatar van Juser MySQL interesse Het zit hem in het feit dat ik de insert in een ander bestand had staan, namelijk de pagina waarna het iframe verwijst. Ik heb de code nu bij het aanmaken van het iframe staan, dit werkt wel. maar iig bedankt voor de moeite.:D Topic mag dicht
Offline TriX - 25/05/2006 11:50
Avatar van TriX HTML interesse Probeer fouten uit te sluiten....

Hij vult geen waarden in! Waar kan dat aan liggen?

De database connectie doet t... dus daar ligt t niet aan!

Weet ie wel welke waarden ie moet invullen? Dat kunnen we testen:
echo $voornaam;
echo $email;

Hey... die zijn leeg.... Dus moeten we ervoor zorgen dat die gevuld worden!

Dat doen we met:

$voornaam = $_POST['voornaam'];
$email = $_POST['email'];

Je zegt nu dat de variabele voornaam gevuld moet worden.
Hij wordt gevuld met de waarde uit het formveld waarvan de naam voornaam is!
Je gebruik POST omdat de method post is!

Als je ze nu echo'd zijn ze wel gevuld....
Probeer al je problemen op deze manier aan te pakken. Daar leer je t meest van!

Offline Juser - 25/05/2006 11:56
Avatar van Juser MySQL interesse Oké bedankt^^.. dat schilt wel, en dan hoef ik niet voor iedere fout waar ik niet uitkom meteen te posten
Offline marten - 25/05/2006 12:09
Avatar van marten Beheerder
Citaat:
$voornaam = $_POST['voornaam'];
$email = $_POST['email'];


Leg Juser het nou niet verkeerd uit aub

  1. <?php
  2. $voornaam = htmlentities($_POST['voornaam'], ENT_QUOTES);
  3. $email = htmlentities($_POST['email'], ENT_QUOTES);
  4. }


Of als je het in je database wil zetten ;)
  1. <?php
  2. $voornaam = addslashes(htmlentities($_POST['voornaam'], ENT_QUOTES));
  3. $email = addslashes(htmlentities($_POST['email'], ENT_QUOTES));
  4. }


Snap je 
Offline Gerard - 25/05/2006 13:59
Avatar van Gerard Ouwe rakker mysql heeft zelf ook een eigen functie om zooi te slashes [mysql_real_escape_string()]. Deze houdt ook rekening met de charset waarvan je gebruik maakt. PHP.net: mysql_real_escape_string
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.239s