Hallo,

Ik heb een formulier waar personen verschillende datums kunnen invullen.
Bij het verzenden wil ik deze datums in een database zetten. Echter,
ik heb nu een probleem.
Deze data word aan elkaar geschreven. Zo krijg ik bijvoorbeeld 04-06-2013,18-06-2013,18-07-2013.
Hoe kan ik deze data scheiden van elkaar zonder de "," en ieder apart in een database plaatsen?

mvg,

Davey Mat
[php]explode[/php], [php]trim[/php] en dan nog even de datum correct formateren voor mysql.
Bedankt!

Ik heb nu dit gemaakt:
$datums = $_POST['pre-select-dates'];
		$komma = ",";
		$spatie = " ";
		$zonderkommas = str_replace($komma, $spatie, $datums);
		print_r(explode(' ', $zonderkommas, -1));

Nu alleen nog het opslaan van de losse data. Hoe kan ik dit doen?

mvg
Waarom zou je in godsnaam eerst de komma's vervangen door spaties, om dan op spaties te gaan exploden. Dat kan je toch gewoon op komma's doen....?

Uit de explode komt vervolgens een array waar je gewoon met de gebruikelijke loopjes doorheen kan lopen (foreach etc.). Invoeren in de database zal je neem ik aan gewoon met een INSERT statement willen, waarbij je meerdere records tegelijk in kan voeren via:

INSERT INTO een_tabel(een_datum_kolom)
VALUES('2013-06-04'),('2013-06-18'),('2013-07-18');
Wat korter:

<?php
$datums_array = explode(',', $_POST['pre-select-dates']);
$insert_values = array();
foreach ($datums_array as $datum) {
	$insert_values[] = "(STR_TO_DATE('%Y-%m-%d', '" . $datum . "'),'" . $_POST['name'] . "')";
}
$sql = "INSERT INTO tabelletje (datum, naam)
	VALUES " . implode(',', $insert_values);
?>

Wel even sql injectie voorkomen, maar om je een idee te geven.


[size=xsmall]Toevoeging op 05/06/2013 20:20:39:[/size]

Sorry Erwin, had jouw reactie niet gezien: maw wat uitgebreider
Enige is dat hij nog wel even het formaat van de datum moet omtoveren van 04-06-2013 naar 2013-06-04
Bedankt Erwin,

Ja was ook niet erg slim, heb het veranderd.

<?php
define('INCLUDE_CHECK',true);

require 'inc/connect.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') { //kijken of het formulier gepost is 
	$commentaar = mysql_real_escape_string($_POST['commentaar']);
	$datums = mysql_real_escape_string($_POST['pre-select-dates']);
	$a = explode(',', $datums);
	foreach ($a as $v) {
  	mysql_query ("INSERT INTO test (datum) VALUES ('". $v ."')") or die (mysql_error()); 
echo "$v<br>";	
}
echo "$commentaar<br>";
}
?>


Ik wil nu de datums aan 1 id o.i.d. koppelen zodat ik weet dat deze datums bij elkaar horen. Iemand enige tips hiervoor?

mvg

[size=xsmall]Toevoeging op 05/06/2013 22:26:16:[/size]

Heb het nu werkend gekregen. De code van Ger van Steenderen werkte bij mij niet dus heb het iets anders:

<?php
define('INCLUDE_CHECK',true);

require 'inc/connect.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') { //kijken of het formulier gepost is 
	$commentaar = mysql_real_escape_string($_POST['commentaar']);
	$datums = mysql_real_escape_string($_POST['pre-select-dates']);
	$a = explode(',', $datums);
	foreach ($a as $v) {
	mysql_query ("INSERT INTO test (datum,naamid) VALUES ('". $v ."','". $_SESSION['id'] ."')") or die (mysql_error());
	echo "$v<br>";
	}
	
}
echo "$commentaar<br>";
?>

koppelen van de datums doe ik dmv een timestamp.
Bedankt voor de hulp!

[size=xsmall]Toevoeging op 05/06/2013 22:53:53:[/size]

Ik heb trouwens de output van de datum veranderd zodat ik yy-mm-dd krijg ipv dd-mm-yy ivm makkelijk opslaan in database.

Reageren