Einige HintergrundgeschichteInsert mehrere statische Werte für mehrere Variable IDs
Ich arbeite in Wordpress v3.9.1 über das Plugin Advanced (nicht direkt relevant für meine Frage, aber vielleicht jemand anderes kann meine Methode verwenden) Benutzerdefinierte Felder. Ich habe eine CSV-Datei von benutzerdefinierten Werten (mit WP Ultimate CSV Importer-Plugin, kostenlose Version) aus der alten Datenbank, formatiert, wie ich in WordPress mit einer Ausnahme importiert - ACF Repeater-Felder importiert. Das Plugin ist großartig, aber es gibt noch keine gute Methode, um viele Daten zu importieren.
Repeater Felder werden in der Datenbank gespeichert sind, wie folgt:
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
Das heißt; Für jede Post-ID gibt es ein Repeater-Feld namens "Betten". "In" ist das Repeaterfeld 1 Feld, zweimal wiederholt. Jedes Feld hat 2 Datenbankeinträge - eine Feldreferenz (zur Verwaltung von Speicherfeldern - immer die gleiche pro Feld) und einen Wert. Es ist nicht so intuitiv wie es sein könnte, aber es basiert auf dem Standard-Tabellensystem von WordPress.
Tatsächliche Frage
Gerade jetzt, ich Felder aus meiner alten Datenbank importiert haben, die wie folgt aussehen:
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
I
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 hinzufügen müssen und meta_value sind statisch - sie ändern sich nie (nachdem das Feld erstellt wurde, behält es das gleiche Feld _ ## bis zum Löschen bei). meta_id ist automatisch erhöht.
Das Problem ist, dass ich mehr als 200 Post_id-Werte haben, die jeweils 50 statische Einträge benötigen - nicht hart Code zu programmieren. Ich kann die erforderlichen IDs wählen die Verwendung folgenden:
SELECT DISTINCT ID
FROM `wp_posts`
WHERE post_type = "community"
// Returns:
post_id
4697
4698
Im Kurzen
Wie kann ich folgendes tun:
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
** Temp Lösung **
Für Vorläufig habe ich einfach alle Daten mit PHP & in PHPMyAdmin hochgeladen. Könnte eine PHP-Schleife schreiben, die einfügt, aber ich suche nach einer MySQL-Lösung, die ich verwenden kann, ohne eine neue PHP-Datei (oder SQL) hochladen zu müssen.
$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 />';
}