insert na function lukt niet...
Ben al het hele weekend aan het pielen, maar het lukt me maar niet.
Het is van oorsprong alleen een email response form, maar kreeg van de ontwerper de function code om de waardes op te slaan in een DB.
De insert is van mezelf, maar dat lukt dus niet... conn naar de db gaat prima.
//
function phpfmg_getSQL(){
$dbFields = array();
foreach( $GLOBALS['form_mail'] as $field ){
if( isset($field["dbfield"]) ){
$value = phpfmg_field_value( $field[ "name" ] );
$dbFields[] = "`{$field['dbfield']}` = \"" . mysql_escape_string( $value ) . "\"";
};
}
return join(",", $dbFields);
$dbFields="INSERT INTO `inschrijving`(`field_0`,`field_1`,`field_2`,`field_3`,`field_4`,`field_5`,`date`,`ip`)
values ('".$_POST['field_0']."','".$_POST['field_1']."','".$_POST['field_2']."',
'".$_POST['field_3']."','".$_POST['field_4']."','".$_POST['field_5']."' now(),
'".($_SERVER['REMOTE_ADDR'])."')";
$res= mysql_query( $dbFields ) ;
}
//
Gewijzigd op 28/02/2012 14:48:30 door Pascal Kuilboer
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$fields = "INSERT INTO inschrijvingen (";
$values = PHP_EOL . "VALUES (";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($_POST as $column => $value) {
$fields .= $column . ",";
$values .= "'" . mysql_real_escape_string($value) . "',";
{
$fields = substr($fields, 0, -1) . ')';
$values = substr($values, 0, -1) . ')';
$result = mysql_query($fields . $values);
//the rest is on you
}
?>
$fields = "INSERT INTO inschrijvingen (";
$values = PHP_EOL . "VALUES (";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($_POST as $column => $value) {
$fields .= $column . ",";
$values .= "'" . mysql_real_escape_string($value) . "',";
{
$fields = substr($fields, 0, -1) . ')';
$values = substr($values, 0, -1) . ')';
$result = mysql_query($fields . $values);
//the rest is on you
}
?>
Gewijzigd op 28/02/2012 15:18:01 door Ger van Steenderen
Toevoeging op 28/02/2012 15:17:12:
Helaas werkt de code niet en S op regel 9 had ik aangepast in $.
Daarbij moet de regel - function tot aan die return regel blijven.
Het gaat dus om de insert die erop moet volgen.
Of sla ik nu de plank mis.
Ik weet iets van programmeren en roep maar misschien iets...
Oops, ik heb een foutje gemaakt, zie aangepaste code bovenstaande reactie
Het werkt niet.
Misschien moet ik je ook erbij vertellen dat de code in een "require_once" bestand staat en dus de waarschijnlijk overbodig is.
Gewijzigd op 28/02/2012 15:22:58 door Ger van Steenderen
Misschien wat onhandig, maar de tabellen zijn field_0, field_1, field_2, field_3, field_4, field_5, date, ip
Pascal Kuilboer op 28/02/2012 15:20:57:
Als dat de enige code is niet.
Maar ik moet je er eventjes erop op duiden dat ik de meer van de code heb gewijzigd dan de S ipv $, ik was namelijk wat quotes vergeten in de sql.
Zet even je error reporting aan, dan weet je waar het fout gaat
Maakt het niet uit dat in die function die wordt aangeroepen die over $dbfields spreekt?
Toevoeging op 28/02/2012 15:37:16:
dit is bv field1:
<li class='field_block' id='field_1_div'><div class='col_label'>
<label class='form_field'>Voornaam</label> <label class='form_required' >*</label> </div>
<div class='col_field'>
<input type="text" name="field_1" id="field_1" value="" class='text_box'>
<div id='field_1_tip' class='instruction'></div>
</div>
</li>
Als je zorgt dat je (html) formulier dezelfde namen heeft voor de inputs als de kolommen in de tabel kan je mijn voorbeeld gebruiken. Zet mijn voorbeeld maar eens in een losstaand script het roep het maar aan vanuit je formulier.
Maaaaaar, als is het niet beter om het allemaal afzonderlij in te kloppen?. Kun je ook nog eens valideren etc.
Ik heb er inmiddels pijn in mijn koop van gekregen hahaha
Toevoeging op 28/02/2012 15:49:41:
ik heb een form.php en form.lib.php
Gewijzigd op 28/02/2012 16:09:52 door Pascal Kuilboer
Is er iemand die de code kan beperken tot alleen relevante ipv 1500+ regels :s
Zo goed Obelix... :(
Gewijzigd op 28/02/2012 19:47:49 door Ger van Steenderen
Graag, want ik ben een beetje klaar met dit formulier ook.
Zag er veel belovend uit, maar de koppeling naar de db blijkt een bottleneck te zijn.
Ik zoek een registratie formulier MET reCAPTCHA, data opslaat in een db en dat zowel mij als de invuller een mailtje stuurt over de registratie en dan met de mogelijkheid een verschillende mailtjes op te stellen voor zowel mij als de invuller.
En maximaal 64 records en dan moet er een melding komen dat de inschrijving is gesloten en het formulier dus niet mee zichtbaar is.
Kan je wel zelf een formulier maken in HTML?
Ik zit nu zelfs aan Chronoforms te denken omdat de site in joomla wordt gemaakt waar het formulier in zou worden geïmplementeerd.
Wie weet is dat de oplossing.