Alcuni storia indietro (non direttamente pertinenti alla mia domanda, ma forse qualcun altro può utilizzare il mio metodo)Inserire valori statici multipli per più ID variabili
sto lavorando in WordPress v3.9.1 utilizzando il plugin avanzata Campi personalizzati. Ho importato un file CSV di valori personalizzati (utilizzando il plug-in WP Ultimate CSV Importer, versione gratuita) dal vecchio database formattato come necessario in WordPress con un'eccezione: Campi ripetitore ACF. Il plugin è ottimo, ma non esiste ancora un buon metodo per importare un sacco di dati.
campi ripetitori vengono memorizzati nel database come segue:
meta_id post_id meta_key meta_value
3894 4697 beds 2
3895 4697 _beds field_53bcfe244a98d
4051 4697 _beds_0_other field_53c2273053218
4050 4697 beds_0_other 1
4051 4697 _beds_1_other field_53c2273053218
4050 4697 beds_1_other 3
5894 4698 beds 2
5895 4698 _beds field_53bcfe244a98d
5051 4698 _beds_0_other field_53c2273053218
5050 4698 beds_0_other 1
5051 4698 _beds_1_other field_53c2273053218
5050 4698 beds_1_other 3
che è; per ogni post_id c'è un campo Repeater chiamato "beds". "In" il campo del ripetitore è 1 campo, ripetuto due volte. Ogni campo ha 2 voci di database: un riferimento di campo (utilizzato per gestire i campi di salvataggio, sempre lo stesso per campo) e un valore. Non è intuitivo come potrebbe essere, ma è progettato attorno al sistema di tabelle di default di WordPress.
domanda effettiva
In questo momento, ho campi importati dal mio vecchio database che assomigliano a questo:
meta_id post_id meta_key meta_value
#### 4697 beds 2
#### 4697 beds_0_other 1
#### 4697 beds_1_other 3
#### 4698 beds 2
#### 4698 beds_0_other 1
#### 4698 beds_1_other 3
ho bisogno di aggiungere
meta_id post_id meta_key meta_value
#### 4697 _beds field_53bcfe244a98d
#### 4697 _beds_1_other field_53c2273053218
#### 4697 _beds_0_other field_53c2273053218
#### 4698 _beds field_53bcfe244a98d
#### 4698 _beds_1_other field_53c2273053218
#### 4698 _beds_0_other field_53c2273053218
meta_key e meta_value sono statico - non cambiano mai (dopo che il campo è stato creato mantiene lo stesso campo _ ## fino alla cancellazione). meta_id è l'incremento automatico.
Il problema è che ho 200+ valori post_id, ognuno dei quali ha bisogno di 50 voci statiche - non volendo il codice. Posso selezionare gli ID richiesti utilizzando il seguente:
SELECT DISTINCT ID
FROM `wp_posts`
WHERE post_type = "community"
// Returns:
post_id
4697
4698
In breve
Come posso effettuare le seguenti operazioni:
INSERT INTO `table` (`meta_id`, `post_id`, `meta_key`, `meta_value`)
VALUES
// foreach related distinct ID in wp_posts
(NULL, 'ID', "_beds", "field_53bcfe244a98d"),
(NULL, 'ID', "_beds_0_other", "field_53c2273053218"),
(NULL, 'ID', "_beds_1_other", "field_53c2273053218")
// end foreach
** ** soluzione temporanea
Per Al momento, ho scaricato tutti i dati usando PHP & caricandolo in PHPMyAdmin. Potrebbe scrivere un loop PHP che si inserisce, ma sto cercando una soluzione MySQL che possa essere utilizzata senza dover caricare un nuovo file php (o sql).
$ids = array("4697", "4698");
echo '
INSERT INTO `table` (`meta_id`, `post_id`, `meta_value`, `meta_key`)
VALUES<br />';
foreach ($ids as $id){
echo '
(NULL, "'. $id .'", "1", "beds"),
(NULL, "'. $id .'", "field_53bcfe244a98d", "_beds"),
(NULL, "'. $id .'", "field_53c2273053218", "_beds_0_other"),
<br />';
}