Von Datenbank in txt schreiben. zeilenumbruch Probleme

Chuck-.-

Bismarckapfel
Registriert
22.12.06
Beiträge
142
Hallo Forum,

Ich bin gerade bei der arbeit und verzweifle.
ich hab in der Berufsschule die Aufgabe bekommen ein Gästebuch mit einer CSV Datei zu programmieren(in PHP). Da ich keine Lust auf CSV hatte hab ich alles mit einer Datebank gelöhst. Soweit war alles ja auch kein Problem. Naja bis mein Lehrer meinte er will sich die CSV-Datei anschauen. Ich, ok schreibst halt alles von der Datenbank in ne CSV Datei. Nene nich so einfach :/
Und zwar wenn ich in meinem textfeld einen Zeilenumbruch einfüge wird der natürlich auch in meine Datenbank und in meine CSV Datei geschreiben. Ich dachte dann wieder den "lösch" ich indem ich "nl2br" verwende und dann das <br /> mit "str_replace"durch ein leerzeichen ersetzte.
Aber nein das is ja nich so einfach wie man denk. In der Datenbank und in der CSV-Datei sind die Umbrüche trozdem noch da.

Ich glaub ich fahr jetzt erstmal zum örtlichen Phsychater. Hab jetzt daran 5 Stunden dran gesessen und jetzt hab ich keine ahnung mehr an was das liegen könnte :(

Kann mir jemand helfen. Bitttttteeeeeee :(

PS: das mit dem denken lass ich glaub mal für ne weile da kommt nix richtiges dabei raus ;)
 

Marty

Gast
Brauchst Du noch hilfe dabei oder hat sich das jetzt schon erledigt?

Ich weiß nicht wie dein Code aussieht aber wenn Du mit nl2br arbeitest könntest du mit str_replace("<br />", "\n", $meineVariable); alle Brakes in einen Zeilenumbruch (\n) umwandeln diese müssten dann auch in deiner Text Datei (CSV) als \n angezeigt werden.

Wenn Du die CSV Daten wieder ausgeben willst mit einem Zeilenumbruch brauchst du nur wieder mit nl2br arbeiten.

Ohne den Code zusehen ist das wohl die einfachste methode.

Grüße
Martin
 

southpole2004

Gast
Wenn du mit "\r\n" arbeitest, sollte der string in double quotes (") stehen. ich hatte mal probleme damit, nur weil ich single quotes(') verwendet hatte.
 

Chuck-.-

Bismarckapfel
Registriert
22.12.06
Beiträge
142
Ja das Projekt ist schon vorbei aber die Neugier warum es nicht funktioniert ist immernoch da. Ich werde es wenn ich wieder vor meinem MB sitze mal ändern. Danke für deinen Vorschlag :)
 

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
Moin erstmal.
Ich arbeite auf Arbeit damit.
Und zwar mache ich genau das.
In einer Sehenswürdigkeiten-Datenbank stehen 300 Stück. Mit lauter Attributen, wie Koordinaten und so.
Wir brauchen die in einem bestimmten Format als Textdatei.
Mach die Formatierung also erst später.
Wenn ich dich richtig verstanden hab, musst du die Rohdaten formatieren.
Hol dir die also mit nem SQL-Query aus der DB und schreib die dann in einer Schleife in die Datei.
Trenn die Felder mit \t für nen Tab und nem \n für den Zeilenumbruch.
Das könnte dann so aussehen:
Code:
$inhalt = "";

$get_db_contents_array = mysql_query($get_db_contents_sql,$conn) or die(mysql_error());
			
	while($row = mysql_fetch_array($get_db_contents_array))
	{
                if($row['feld1'] != ""
                {
                     $inhalt .= $row['feld1']."\t";
                }

                 if($row['feld2'] != ""
                {
                     $inhalt .= $row['feld2'];
                }
                $inhalt .= "\n";
        }
        if(!$FilePointer = fopen($File_directory.$file_name, "w"))//oeffnen/anlegen des Files in directory
		{
                   echo "File konnte nicht erstellt werden</br>\n";
                }
		else
                {
		   echo "File wurde erstellt</br>\n";
                }
		if(!fwrite($FilePointer, $inhalt))//Inhalt in die zuvor geoeffnete Datei schreiben
		{
                   echo "File konnte nicht beschrieben werden</font></br>\n";
                }
		else
		{
                   echo "File erfolgreich beschrieben</br>\n";
                }
		if(!fclose($FilePointer))//erzeugte Datei schließen
                {
		   echo "Erzeugung des Files konnte nicht erfolgreich abgeschlossen werden</br>\n";
                }
		else
                {
		   echo "<b>Erzeugung des *.ls-files erfolgreich</b></br></br>\n";
                }

Wenn ich dich also richtig verstanden hab, sollte das so gehen!

Viel Erfolg
 
Zuletzt bearbeitet: