Velden dupliceren
Is het mogelijk met een insert bijv. iets als
$datum = 2015-06-04 // datum van waaruit de insert plaatsvind
loop?
INSERT INTO tabelnaam.................
Einde loop ?
Dus uit een rij met een datum 4 nieuwe rijen erbij te zetten met een week verschil
Heb nou bijv.
id 1 , test data, 2015-06-11
--------------------------------------------------
Met een insert wil ik dan bijv, krijgen
id 2 , test data, 2015-06-18
id 3 , test data, 2015-06-25
id 4 , test data, 2015-07-02
id 5 , test data, 2015-07-09
iemand een idee of dit mogelijk is en hoe?
Gewijzigd op 11/06/2015 18:15:38 door Pierre Web
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "INSERT INTO tabelnaam (veldnaam, datum)
VALUES
('testdata', '2015-06-11')";
for ($i=1; $i<5; $i++) {
$sql .= ",\r\n\t('tesdata', '2015-06-11' + INTERVAL " . $i . " WEEK)";
}
?>
$sql = "INSERT INTO tabelnaam (veldnaam, datum)
VALUES
('testdata', '2015-06-11')";
for ($i=1; $i<5; $i++) {
$sql .= ",\r\n\t('tesdata', '2015-06-11' + INTERVAL " . $i . " WEEK)";
}
?>
Bedankt
Krijg nu alleen EEN rij toegevoegd met datum, heb het wel een beetje moeten aanpassen (MysqlI)
weet niet of het daar aan ligt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
define('_HOST_NAME','localhost');
define('_DATABASE_NAME','xxx_admin');
define('_DATABASE_USER_NAME','xxx_admin');
define('_DATABASE_PASSWORD','xxx');
$MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
if($MySQLiconn->connect_errno)
{
die("ERROR : -> ".$MySQLiconn->connect_error);
}
?>
<?php
$SQL = $MySQLiconn->query("INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')");
for ($i=1; $i<5; $i++) {
$SQL .= ",\r\n\t('id', '2015-06-11' + INTERVAL " . $i . " WEEK";
}
?>
define('_HOST_NAME','localhost');
define('_DATABASE_NAME','xxx_admin');
define('_DATABASE_USER_NAME','xxx_admin');
define('_DATABASE_PASSWORD','xxx');
$MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
if($MySQLiconn->connect_errno)
{
die("ERROR : -> ".$MySQLiconn->connect_error);
}
?>
<?php
$SQL = $MySQLiconn->query("INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')");
for ($i=1; $i<5; $i++) {
$SQL .= ",\r\n\t('id', '2015-06-11' + INTERVAL " . $i . " WEEK";
}
?>
Gewijzigd op 11/06/2015 19:58:54 door Pierre Web
Achter WEEK mist een ).
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$datum = '2015-06-11';
$SQL = $MySQLiconn->query("INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')");
for ($i=1; $i<5; $i++) {
$SQL .= ",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)";
}
[/code]
$datum = '2015-06-11';
$SQL = $MySQLiconn->query("INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')");
for ($i=1; $i<5; $i++) {
$SQL .= ",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)";
}
[/code]
Daarna ga je $SQL langer maken.
Niet goed dus.
Maak eerst $SQL met de query er in.
Daarna voer je het pas uit.
Of voer meerdere queries uit, moet ->query() wel binnen de loop staan natuurlijk :>.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$sql = mysql_connect('localhost', 'xxxx_admin', 'xxx');
if (!$sql) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
?>
<?php
error_reporting(E_ALL);
$sql = "INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')";
for ($i=1; $i<5; $i++) {
$sql .= ",\r\n\t('id', '2015-06-11' + INTERVAL " . $i . " WEEK)";
}
?>
$sql = mysql_connect('localhost', 'xxxx_admin', 'xxx');
if (!$sql) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
?>
<?php
error_reporting(E_ALL);
$sql = "INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')";
for ($i=1; $i<5; $i++) {
$sql .= ",\r\n\t('id', '2015-06-11' + INTERVAL " . $i . " WEEK)";
}
?>
Gewijzigd op 11/06/2015 20:49:52 door Pierre Web
Het fragment van Ger laat enkel zien hoe je de SQL genereert.
Na afloop van het genereren kun je volstaan met het uitvoeren van één query.
Wat jij doet is één VALUES paar in de database zetten terwijl de opgebouwde SQL string van Ger er als volgt uitziet:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
INSERT INTO tabelnaam (veldnaam, datum)
VALUES
('testdata', '2015-06-11'),
('tesdata', '2015-06-11' + INTERVAL 1 WEEK),
('tesdata', '2015-06-11' + INTERVAL 2 WEEK),
('tesdata', '2015-06-11' + INTERVAL 3 WEEK),
('tesdata', '2015-06-11' + INTERVAL 4 WEEK)
VALUES
('testdata', '2015-06-11'),
('tesdata', '2015-06-11' + INTERVAL 1 WEEK),
('tesdata', '2015-06-11' + INTERVAL 2 WEEK),
('tesdata', '2015-06-11' + INTERVAL 3 WEEK),
('tesdata', '2015-06-11' + INTERVAL 4 WEEK)
Dus je voert ofwel de bovenstaande query in 1x uit met Ger zijn aanpak, of je doet dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
for ($i = 0; $i < 5; $i++) {
$con->query(
"INSERT INTO data (
fn,
datum
) VALUES (
'test',
'2015-06-11' + INTERVAL " . $i . " WEEK
)"
);
}
?>
for ($i = 0; $i < 5; $i++) {
$con->query(
"INSERT INTO data (
fn,
datum
) VALUES (
'test',
'2015-06-11' + INTERVAL " . $i . " WEEK
)"
);
}
?>
En misschien is het niet zo verstanding je connectie-variabele $sql te noemen...
Gewijzigd op 11/06/2015 20:47:57 door Thomas van den Heuvel
Als ik je insert op de database loslaat werkt dat uitstekend,
maar begrijp je verder ff niet , ik neem de code van Ger toch over in 2e voorbeeld, is deze dan niet compleet of zo.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
for ($i=1; $i<5; $i++) {
$SQL .= ",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)";
}
?>
for ($i=1; $i<5; $i++) {
$SQL .= ",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)";
}
?>
Hier doe je verder helemaal niets mee...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$sql = mysql_connect('localhost', 'xxxx_admin', 'xxx');
if (!$sql) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
error_reporting(E_ALL);
$sql = "INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')";
for ($i=1; $i<5; $i++) {
$sql .= ",\r\n\t('id', '2015-06-11' + INTERVAL " . $i . " WEEK)";
}
// query uitvoeren.
?>
$sql = mysql_connect('localhost', 'xxxx_admin', 'xxx');
if (!$sql) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
error_reporting(E_ALL);
$sql = "INSERT INTO data (fn, datum)
VALUES
('fn', '2015-06-11')";
for ($i=1; $i<5; $i++) {
$sql .= ",\r\n\t('id', '2015-06-11' + INTERVAL " . $i . " WEEK)";
}
// query uitvoeren.
?>
Gewijzigd op 11/06/2015 20:51:39 door - SanThe -
ben hier waarschijnlijk al te lang bezig mee geweest, hoop dat de oplossing nabij is.
$uitvoeren = $MySQLiconn->query($sql);
Ik maak contact met de DB
Ik heb een Query en een insert, in een lus
Maar ik zie het niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
define('_HOST_NAME','localhost');
define('_DATABASE_NAME','debxxx_admin');
define('_DATABASE_USER_NAME','debxx_admin');
define('_DATABASE_PASSWORD','xxx');
$MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
if($MySQLiconn->connect_errno)
{
die("ERROR : -> ".$MySQLiconn->connect_error);
}
error_reporting(E_ALL);
$datum = '2015-06-15';
$SQL = $MySQLiconn->query("INSERT INTO data (fn, datum)
VALUES
('fn', '$datum')");
for ($i=1; $i<5; $i++) {
$SQL .= (",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)");
}
$uitvoeren = $MySQLiconn->query($SQL);
?>
define('_HOST_NAME','localhost');
define('_DATABASE_NAME','debxxx_admin');
define('_DATABASE_USER_NAME','debxx_admin');
define('_DATABASE_PASSWORD','xxx');
$MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
if($MySQLiconn->connect_errno)
{
die("ERROR : -> ".$MySQLiconn->connect_error);
}
error_reporting(E_ALL);
$datum = '2015-06-15';
$SQL = $MySQLiconn->query("INSERT INTO data (fn, datum)
VALUES
('fn', '$datum')");
for ($i=1; $i<5; $i++) {
$SQL .= (",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)");
}
$uitvoeren = $MySQLiconn->query($SQL);
?>
Zo zou het moeten werken toch?
Toevoeging op 11/06/2015 22:04:53:
Mis ik hier mischien de rij fn?
edit,
Deze vraag kan weg.
Gewijzigd op 11/06/2015 22:07:11 door Pierre Web
Pierre Web op 11/06/2015 21:55:34:
Deze vraag kan weg.
Werkt het nu?
afgaande op Deze vraag kan weg bedoelde ik mijn vraag: Mis ik hier misschien de rij fn?
Toevoeging op 11/06/2015 22:35:05:
Ik denk dat de dubbele quotes ergens niet goed staan.
- SanThe - op 11/06/2015 20:10:44:
Jij voert eerst de query uit en stopt het resultaat in $SQL.
Daarna ga je $SQL langer maken.
Niet goed dus.
Maak eerst $SQL met de query er in.
Daarna voer je het pas uit.
Daarna ga je $SQL langer maken.
Niet goed dus.
Maak eerst $SQL met de query er in.
Daarna voer je het pas uit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
define('_HOST_NAME','localhost');
define('_DATABASE_NAME','debxxx_admin');
define('_DATABASE_USER_NAME','debxx_admin');
define('_DATABASE_PASSWORD','xxx');
$MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
if($MySQLiconn->connect_errno)
{
die("ERROR : -> ".$MySQLiconn->connect_error);
}
error_reporting(E_ALL);
$datum = '2015-06-15';
$SQL = "INSERT INTO data (fn, datum)
VALUES
('fn', '$datum')";
for ($i=1; $i<5; $i++) {
$SQL .= (",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)");
}
$uitvoeren = $MySQLiconn->query($SQL);
?>
define('_HOST_NAME','localhost');
define('_DATABASE_NAME','debxxx_admin');
define('_DATABASE_USER_NAME','debxx_admin');
define('_DATABASE_PASSWORD','xxx');
$MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
if($MySQLiconn->connect_errno)
{
die("ERROR : -> ".$MySQLiconn->connect_error);
}
error_reporting(E_ALL);
$datum = '2015-06-15';
$SQL = "INSERT INTO data (fn, datum)
VALUES
('fn', '$datum')";
for ($i=1; $i<5; $i++) {
$SQL .= (",\r\n\t('id', '$datum' + INTERVAL " . $i . " WEEK)");
}
$uitvoeren = $MySQLiconn->query($SQL);
?>
Gewijzigd op 11/06/2015 22:53:13 door - SanThe -
Ik krijg nou 5 datums
15 juni t/m 13 juli
Alleen de kolom fn krijg als waarde fn mee bij de 1e id
de andere 4 daaropvolgende krijgen de de waarde id in de kolom fn
Nou heb ik wel een kolom fn en waarde fn in voorbeeld maar daar zal het niet aan liggen.
Gewijzigd op 11/06/2015 23:16:31 door Pierre Web