Antworten auf deine Fragen:
Neues Thema erstellen

Jedes Element Einzeln in MySQL eintragen?

onemillion

Nicht mehr ganz neu hier

Hi Leute.
Arbeite mal wieder mit PHP. Stehe jetzt vor dem Problem, dass ich gerne Mehrere Elemente in eine MySQL- DB eintragen möchte. Sieht in etwa wie folgt aus:
<ul>
<li><h2>title</h2>Lorem ipsum dol....</li>
<li><h2>title</h2>Lorem ipsum dol....</li>
<li><h2>title</h2>Lorem ipsum dol....</li>
</ul>
Jedes Der li elemente soll in eine einzelne Zeile der Tabelle eingetragen werden. dabei soll der h2- tag vom resttext getrennt werden. Habe mich jetzt einige Stunden damit beschäftigt, aber leider keinen Ansatz zum lösen des Problems gefunden. Hätte jemand einen Tipp/ Tutorial welches dieses Problem lösen könnte?

Würde mich freuen
Daniel
Ps.: schönen dritten advent :)
 
Zuletzt bearbeitet:

Antr4ks

Nicht mehr ganz neu hier

AW: Jedes Element Einzeln in MySQL eintragen?

Bin ich der Einzige, der dein Problem nicht versteht?
Wo ist denn jetzt der Fehler? Haperts an der Struktur? Oder weißt du nicht wie man aus der Datenbank liest bzw. in die Datenbank schreibt?
 

Chickenshooter

Alter Mann

AW: Jedes Element Einzeln in MySQL eintragen?

Moin,

Wenn ich Dich richtig verstehe soll alles was Überschrift ist (H-Tag) nicht gespeichert werden under der Rest der innerhalb der li Tags bleibt als Text
in einer DB gesichert werden.

Sprich Du hast eine "fertige" HTML Seite die Du für Dich nutzbar machen
willst, indem Du Daten dieser Seite "ausliest" und speicherts.

Wenn das Alles der Fall ist helfen Dir reguläre Ausdrücke oder
in good old english: Regular-Expressions.

MfG Chickenshooter
 

onemillion

Nicht mehr ganz neu hier

AW: Jedes Element Einzeln in MySQL eintragen?

Bin ich der Einzige, der dein Problem nicht versteht?
Wo ist denn jetzt der Fehler? Haperts an der Struktur? Oder weißt du nicht wie man aus der Datenbank liest bzw. in die Datenbank schreibt?

Entschuldigung aber den Text habe ich in etwas müdem zustand geschrieben :hmpf:

Mein Ansatz war, dass ich eine HTML- Datei habe, welche mehrere <li> - tags beeinhaltet. Diese Listenpunkte sind in reinem textformat!! Also noch in keiner Datenbank.
Diese Informationen möchte ich jetzt in eine Datenbank eintragen. Mir fehlt jetzt das wissen, wie ich pro li- Tag einen neuen Eintrag in die DB mache.

@ chickenshot: Wie meinst du das? würde vermuten du spielst auf das umwandeln in einen array und dem folgenden durchlaufen einer foreach- schleife?

Wie kann man aus einer foreach- schleife in die DB eintragen?

Gruß
Daniel
 

Antr4ks

Nicht mehr ganz neu hier

AW: Jedes Element Einzeln in MySQL eintragen?

Sorry, aber so wirklich bin ich immernoch nicht dahinter, was du möchtest...

Aber ich versuch mal zu erklären wie ichs verstanden habe.
Erstmal, um Datenbanken zu adminstrieren gibts normalerweise einen phpmyadmin-Zugang. Dort kannst du die Tabellen und deren Strukturen anlegen, auch schon Daten in die Datenbank schreiben. Das Empfehl ich dir. Ansonsten ein wenig Zeit in das Lernen von SQL-Befehlen per PHP investieren.

Zum Beispiel deine Tabelle listenpunkte hat dann die Spalten title und text

Dann fragst du die einzelnen Zeilen mit einer while-Schleife ab und gibst die entsprechenden Punkte aus.

Beispiel
PHP:
// Die Verbindung zur Datenbank muss bereits bestehen
$abfrage_liste = mysql_query("SELECT * FROM listenpunkte");
echo('<ul>');
while($zeile_liste = mysql_fetch_array($abfrage_liste)):
echo('<li><h2>'.$zeile_liste['title'].'</h2>'.$zeile_liste['text'].'</li>');
endwhile;
echo('</ul>');

Um in die Datenbank zu schreiben gibts dann den Befehl

PHP:
mysql_query("INSERT INTO listenpunkte (title, text) VALUE ('$title', '$text')");
 
Zuletzt bearbeitet:

onemillion

Nicht mehr ganz neu hier

AW: Jedes Element Einzeln in MySQL eintragen?

Sorry, aber so wirklich bin ich immernoch nicht dahinter, was du möchtest...

Aber ich versuch mal zu erklären wie ichs verstanden habe.
Erstmal, um Datenbanken zu adminstrieren gibts normalerweise einen phpmyadmin-Zugang. Dort kannst du die Tabellen und deren Strukturen anlegen, auch schon Daten in die Datenbank schreiben. Das Empfehl ich dir. Ansonsten ein wenig Zeit in das Lernen von SQL-Befehlen per PHP investieren.

Zum Beispiel deine Tabelle listenpunkte hat dann die Spalten title und text

Dann fragst du die einzelnen Zeilen mit einer while-Schleife ab und gibst die entsprechenden Punkte aus.

Beispiel
PHP:
// Die Verbindung zur Datenbank muss bereits bestehen
$abfrage_liste = mysql_query("SELECT * FROM listenpunkte");
echo('<ul>');
while($zeile_liste = mysql_fetch_array($abfrage_liste)):
echo('<li><h2>'.$zeile_liste['title'].'</h2>'.$zeile_liste['text'].'</li>');
endwhile;
echo('</ul>');
Um in die Datenbank zu schreiben gibts dann den Befehl

PHP:
mysql_query("INSERT INTO listenpunkte (title, text) VALUE ('$title', '$text')");

Mein Problem ist, das die Liste noch nicht ein einer DB eingetragen ist, sondern in reinem HTML- Format vorliegt! Deshalb muss ich nach einer Methode suchen, um jeden einzelnen Listenpunkt jeweils einzeln in die DB einzutragen.
 

Antr4ks

Nicht mehr ganz neu hier

AW: Jedes Element Einzeln in MySQL eintragen?

Erstmal, um Datenbanken zu adminstrieren gibts normalerweise einen phpmyadmin-Zugang. Dort kannst du die Tabellen und deren Strukturen anlegen, auch schon Daten in die Datenbank schreiben. Das Empfehl ich dir. Ansonsten ein wenig Zeit in das Lernen von SQL-Befehlen per PHP investieren.

Um mich mal selbst zu zitieren :)
 

onemillion

Nicht mehr ganz neu hier

AW: Jedes Element Einzeln in MySQL eintragen?

Um mich mal selbst zu zitieren :)


Das Problem ist nicht das ich mich nicht mit Datenbanken auskenne, sondern das ich z.B. direckt von eine Liste importieren möchte. diese möchte ich dann in eine Datenbank speichern.
Also das pro <li>element ein neuer eintrag in der DB entsteht.
 

Chickenshooter

Alter Mann

AW: Jedes Element Einzeln in MySQL eintragen?

Moin,

mit diesem code:

PHP:
<?php
$htmlFile = "liste.html";
$arf = file($htmlFile,null,null);

echo "<h1>".count($arf)." Zeilen eingelesen.</h1>";

$bg="#bfbfbf";
$z=1;

foreach ($arf as $lineNumber => $line)
{
    $bg=$z%2==0?"#fff":"#bfbfbf";
    if ($z%2==0) $z--; else  $z++;
    echo '<p style="margin:0px; padding:0px; background-color:'.$bg.'">'.htmlentities($line)."</p>";
}
?>
kannst Du deine HTML-Datei in einen Array befödern,
und diesen dann mit eine foreach Schleife durchlaufen.
Der echo Befehl ist nur dafür da zu sehen was sich in $line
befindet den kannst Du bei Dir nartürlich weg lassen.

Das was dann in
PHP:
$line
steht kannst Du mit
preg_match() checken, gibt diese Funktion 1 zurück
stimmt der reg. Ausdruck mit der line überein.

Nun musst Du noch den Inhalt der li´s via regex in einen
String schreiben, welchen Du dann in eine DB-Tabelle
schreiben kannst.

oder nutze die Funktion preg_grep() diese gibt Dir einen Array zurück.

MfG
 

Duddle

Posting-Frequenz: 14µHz

AW: Jedes Element Einzeln in MySQL eintragen?

Warum bearbeitest du die HTML-Datei nicht einfach in einem guten Editor, so dass du am Ende eine gesäuberte Form mit den reinen Daten hast (zum Beispiel als csv)? Mit den richtigen Werkzeugen ist das eine Sache von 10 Minuten.


Duddle
 

onemillion

Nicht mehr ganz neu hier

AW: Jedes Element Einzeln in MySQL eintragen?

Warum bearbeitest du die HTML-Datei nicht einfach in einem guten Editor, so dass du am Ende eine gesäuberte Form mit den reinen Daten hast (zum Beispiel als csv)? Mit den richtigen Werkzeugen ist das eine Sache von 10 Minuten.


Duddle

Weil das aulesen der informationen voll automatisch gschehen soll...
außerdem handelt es sich um ständig ändernde immer neu hinzukommende Datensätze...
deswegen suche ich einen weg, um das mit PHP umzusetzen
Gruß
Daniel
 

Chriss1987

me.drinkCoffee();

AW: Jedes Element Einzeln in MySQL eintragen?

Hi,

könntest das evtl. so machen:
PHP:
<?php

$data = file("test.html");
$data_raw = array();

foreach ($data AS $line)
    {
        // nach Übereinstummungen des Suchmusters suchen
        preg_match_all('/<li><h2>(.*?)<\\/h2>(.*?)<\\/li>/is', $line, $data_raw2);
        if (isset($data_raw2[1][0]) AND isset($data_raw2[2][0]))
            {
                // entweder direkt Zeilenweise in die DB schreiben
                $sql_query = "INSERT INTO inhalt SET title='" . $data_raw2[1][0] . "', text='" . $data_raw2[2][0] . "'";
                    // mysql_query...
                
                // oder in ein mehrdemensionales Array, welches dann zur weiteren Verarbeitung genutzt werden kann
                $data_raw[] = array("title" => $data_raw2[1][0], "text" => $data_raw2[2][0]);
                
                // oder beides :-P
            }
    }

print_r($data_raw);
?>

wobei "test.html" die Seite ist, auf der die Daten stehen...

Schöne Grüße aus dem Sauerland!
Chriss
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben