mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 16:37 Benutzername: Passwort: Auto-Login

Thema: [Wordpress] Neue Artikel mit PHP in SQL-DB importieren vom 08.10.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [Wordpress] Neue Artikel mit PHP in SQL-DB importieren
Autor Nachricht
seal
Threadersteller

Dabei seit: 31.07.2005
Ort: Pfalz
Alter: 41
Geschlecht: Männlich
Verfasst Mi 08.10.2008 17:24
Titel

[Wordpress] Neue Artikel mit PHP in SQL-DB importieren

Antworten mit Zitat Zum Seitenanfang

Neues Projekt von mir, neue Probleme:

Ich habe eine .sql-Datei mit folgendem Inhalt, die nun nach WP portiert werden soll. Es geht dabei um ca. 14 000 Einträge!
Code:
INSERT INTO `blubb` VALUES (1, '1', 'INHALT');

("blubb" wäre die Tabelle in der DB)

Was ich jetzt suche/brauche/programmieren möchte ist ein PHP-Script, dass diese Einträge (INHALT als Artikeltext) WP-gerecht in die DB hämmert.

WP verlangt folgende Syntax (Variablen die geändert werden sollen durch das Script in fett)
Zitat:
USE `blubb`;
INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_category`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES
(333, 1, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 'INHALT', 'TITEL ID 333', 0, '', 'draft', 'open', 'open', '', '', '', '', '2008-10-08 15:58:52', '2008-10-08 13:58:52', '', 0, 'http://blubb.org/?id=333', 0, 'post', '', 0),
...


Ich bräuchte also ein PHP-Script, dass zur DB verbindet und für jeden Eintrag in meiner Ursprungsdatei eine solche Zeile in die DB schreibt und dabei die fett markierten Einträge jeweils um 1 erhöht bzw. mit dem Inhalt ersetzt.

Jemand ne Idee wie ich anfangen könnte? Wäre super wenn mir jemand das Grundgerüst vorgibt (ich denke da an foreach oder einen Array), für den Rest reichen meine bescheidenen PHP-Künste sicher aus.

Denkt ihr das Script schafft die 14 000 Einträge, oder wäre es besser das zu splitten?
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Mi 08.10.2008 17:44
Titel

Antworten mit Zitat Zum Seitenanfang

Also zuerst solltest die Inserts mit einem regulären Ausdruck zerlegen und in ein Array schreiben. Dieses Array kannst du dann einfach mit einer foreach schleife durchlaufen und dabei dann aucheinen counter mitzählen lassen und die ID's jedes mal erhöhen lassen. Ich kenn mich jetzt zwar nicht mit Wordpress aus aber das Feld ID sieht mir ganz nach dem Primärschlüssel der Tabelle aus. Wird auto_increment bei deiner tabelle nicht benutzt so das du das selbst machen musst?

Ansonsten könntest du nämlich auf den counter verzichten.

Wie du den String richtig verkettest dürfte ja eigentlich kein problem sein.

Das mit den 14.000 könnte gehen, muss aber nicht. Wenn max_timeout in der php.ini hoch genug eingestellt ist. Hab auf eine ähnliche Art und Weise auch schon rund 100.000 Datensätze erstellt. Zur Sicherheit noch per ini_set das timeout etwas höher setzen. Falls du dazu keine rechte hast solltest du das ganze dann doch splitten.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
status4

Dabei seit: 01.10.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 08.10.2008 19:03
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
foreach schleife durchlaufen


SQL Querys in einer Schleife? 14.000 Stück? Au weia!



Du hast nur dieses eine File und die Datenbank ist nicht mehr vorhanden oder wie?
  View user's profile Private Nachricht senden
seal
Threadersteller

Dabei seit: 31.07.2005
Ort: Pfalz
Alter: 41
Geschlecht: Männlich
Verfasst Mi 08.10.2008 19:04
Titel

Antworten mit Zitat Zum Seitenanfang

Pixelpole hat geschrieben:
Also zuerst solltest die Inserts mit einem regulären Ausdruck zerlegen und in ein Array schreiben. Dieses Array kannst du dann einfach mit einer foreach schleife durchlaufen und dabei dann aucheinen counter mitzählen lassen und die ID's jedes mal erhöhen lassen. Ich kenn mich jetzt zwar nicht mit Wordpress aus aber das Feld ID sieht mir ganz nach dem Primärschlüssel der Tabelle aus. Wird auto_increment bei deiner tabelle nicht benutzt so das du das selbst machen musst?.


Danke!

Könntest du mir ein Beispiel für das fett markierte geben?!

Meine PHP-Kenntnisse gehen nicht viel weiter als if-else Schleifen zu verstehen, .txt zu öffnen oder so, aber keine Ausdrücke zerlegen und in einen Array zu hauen. Den Counter krieg ich dann wieder selbst gebacken.

Ja, ich schäme mich dafür Ooops

Wäre es einfacher die Einträge aus ner vorhandenen DB zu holen, anstatt sie mit PHP erst zu zerlegen?

Edit:
Zitat:

Du hast nur dieses eine File und die Datenbank ist nicht mehr vorhanden oder wie?


Ich kann eine neue DB mit den Einträgen erstellen, damit kann WP aber nichts anfangen. Also müssten die dann irgendwie wieder in die WP-Tabelle rein.


Zuletzt bearbeitet von seal am Mi 08.10.2008 19:06, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
status4

Dabei seit: 01.10.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 08.10.2008 19:52
Titel

Antworten mit Zitat Zum Seitenanfang

Ja stimmt, natürlich kannst du aus der Dateie eine Tabelle erstellen. Ooops


So kannst du ganz einfach den Import INSERT SELECT durchführen.

http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

Am einfachsten per PHPMyAdmin.
  View user's profile Private Nachricht senden
seal
Threadersteller

Dabei seit: 31.07.2005
Ort: Pfalz
Alter: 41
Geschlecht: Männlich
Verfasst Do 09.10.2008 00:02
Titel

Antworten mit Zitat Zum Seitenanfang

Ganz einfach ist gut *hu hu huu*

Bis ich da durchsteige mit den SQL-Anweisungen ist die Nacht vorbei

Edit sagt:
Danke euch beiden, INSERT INTO hats gebracht! *Thumbs up!*
Schneller durchgeblickt als ich dachte!

Code:
INSERT INTO `wp_posts` (`ID`, `post_content`)
SELECT `id`, `blubb`
FROM `bla`
WHERE kategorie = 1


* huduwudu! * * huduwudu! * * huduwudu! *


Zuletzt bearbeitet von seal am Do 09.10.2008 00:42, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen wordpress - artikel bearbeiten
Wordpress - Artikel erscheint 3 mal auf Startseite
wordpress artikel und kategorie einer seite zuordnen
[wordpress] ersten artikel anders aussehen lassen [solved]
Wordpress Startseite ändern. nur wie?? NEUE PROBLEME...
Artikel für Shop speichern
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.