/ / Inserindo Múltiplos Datas no Banco de Dados usando consulta única com para loop - php, mysql, sql

Inserindo Múltiplos Datas no Banco de Dados usando consulta única com para loop - php, mysql, sql

Como inserir vários dados no banco de dados para cada mês no meu $dateentry Eu tenho 6 datas. Eu preciso armazená-los no banco de dados com o mesmo ID.

mysql_query("INSERT INTO testtable (ID, MonthEntries) VALUES("1","$dateentry")")
or die(mysql_error());

$dateentry = 2010-01-01, 2010-02-01, 2010-03-01, 2010-04-01, 2010-05-01, 2010-06-01,

Estrutura ID = INT MonthEntries = DATE

Para cada data em $ dateentry, eu preciso inserir cada uma delas com o mesmo ID. exemplo de saída de tabela de dados na minha tabela de banco de dados abaixo.

-------------------
ID | MonthEntries |
01 | 2010-01-01   |
01 | 2010-02-01   |
01 | 2010-03-01   |
01 | 2010-04-01   |
01 | 2010-05-01   |
01 | 2011-06-01   |
-------------------

Eu acho que eu preciso usar para loop na consulta sql, mas eu estou um pouco perdido e eu não sei como construí-lo.

Respostas:

0 para resposta № 1

Como o @Wrikken diz em seu comentário, você precisa de um loop no nível do aplicativo. Os dados de entrada devem primeiro ser armazenados em uma matriz pela qual você possa percorrer. Algo como:

$id = 1;
$entries = array( "2010-01-01",
"2010-02-01",
"2010-03-01",
"2010-04-01",
"2010-05-01",
"2010-06-01");

foreach($entries as $entry) {

mysql_query("INSERT INTO testtable (ID, MonthEntries) VALUES($id,"{$entry}")")
or die(mysql_error());

}

Nota: Eu não verifiquei seu SQL para ver se funciona.

Bloco de código revisado com base no trecho de código do seu comentário:

$date = "2010-01-01";
$end_date = "2010-06-01";

$dateentry = array();
$id = 1; // required by your MySQL insert statement

// populate $dateentry array with dates
while (strtotime($date) <= strtotime($end_date)) {
$dateentry[] =  date("Y-m-d", strtotime($date));
$date = date ("Y-m-d", strtotime("+1 month", strtotime($date)));
} // end while

// loop through $dateentry and insert each date into database
foreach($dateentry as $entry) {

mysql_query("INSERT INTO testtable
(ID, MonthEntries)  VALUES($id,"{$entry}")")
or die(mysql_error());

} // end foreach

Novamente, não verifiquei sua instrução do MySQL quanto a erros