php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-09-2006, 14:44
sk4r
 Junior Member
Links : Onlinestatus : sk4r ist offline
Registriert seit: Sep 2005
Beiträge: 84
sk4r ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy CSV mit PHP

Hallo liebe Community,

ich habe mich nun ein paar Tage lang damit beschäftigt, wie es funktioniert, eine CSV-Datei in die Datenbank zu importieren und das mittels PHP. Hier erstmal mein Quellcode:

PHP-Code:
<?
session_start
();
if(!
session_is_registered(meinusername)){
header("location:index.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Aktualisierung der Datenbank</title>
<link rel="stylesheet" type="text/css" href="include/style.css">
</head>
<br><br><br>
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<?php
include("include/config.php");

$sqldel 'DELETE FROM `test`';
$delete mysql_query($sqldel);

$fcontents file("../".$erlaubte_datei);
echo 
"<tr><td colspan=\"3\"><b>MySQL lieferte folgendes Ergebnis: </b><br><br></td></tr>";
for (
$i 0$i sizeof($fcontents); $i++)
{
    
$line trim($fcontents[$i]);
    echo 
"<tr bgcolor=\"#D3D3D3\"><td colspan=\"3\">$line <br></td></tr>";
    
$arr explode(";" $line);
    
#Wenn die CSV Datei TAB separiert ist, muss "," durch "/t" ersetzt werden
    
$sql "insert into test values ('"implode("','",$arr) ."')";
    
#TABELLENNAME durch den Namen der Tabelle in der Datenbank ersetzen
    
    
mysql_query($sql);
    echo 
"<tr bgcolor=\"#32CD32\"><td colspan=\"3\">" $sql "<br>\n</td></tr>";
    
    if(
mysql_error())
    {
        echo 
"<tr bgcolor=\"red\"><td colspan=\"3\">" mysql_error() . "<br>\n</td></tr>";
    }
}
?>
<tr><td colspan="3">
<br><br><center>
<form action="upload.php" method="post">
<input type="submit" value="Zurück" class="eingabefeldgelb">
</form><br><br>
<form action="logout.php" method="post">
<input type="submit" value="Ausloggen" class="eingabefeldrot">
</form>
</td></tr>
<body>
</body>
</html>
Das Problem, das mir erst im Nachhinein eingefallen ist, ist, dass das dieses Script nur Zeile für Zeile liest. Das habe ich mein Programmieren überhaupt net bedacht. Naja wie auch immer. Es tut seine Pflicht für eines meiner Arbeiten. Aber nun brauche ich genau das Selbe, welches Spalte für Spalte liest. (1 Spalte = 1 Datensatz)

Ich hab keine Ahnung, wie ich mein Script umfunktionieren soll, damit dies klappt.
Ich denke mal, dass das genannte Problem hier gelöst werde könnte:
PHP-Code:
$line trim($fcontents[$i]); 
Ich danke euch allen für eure kommenden Antworten. Freue mich schon auf Lösungsvorschläge und auf eine schöne Diskussion.

Mit freundlichen Grüßen

sk4r
Mit Zitat antworten
  #2 (permalink)  
Alt 20-09-2006, 15:03
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: CSV mit PHP

Bitte lies die Regeln, und brich den Code um - vor deiner nächsten Antwort.

Zitat:
Original geschrieben von sk4r
Aber nun brauche ich genau das Selbe, welches Spalte für Spalte liest. (1 Spalte = 1 Datensatz)
Was meinst du damit genau?

Zeile #1 mit drei Spalten a, b, c - entspricht drei zu erstellenden Datensätzen mit den Inhalten von a, b und c?

Oder möchtest du die Spalteninhalte aller Zeilen zu jeweils einem Datensatz zusammenfügen?


Schon mal fgetcsv zum lesen aus CSV-Dateien angeschaut?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 20-09-2006, 15:14
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$arr explode(";" $line); 
scheint so, als wären die daten, die du in der csv hast schön mit ";" getrennt, und dass du jede zeile nacheinander in die db schreiben willst.

schau dir doch mal folgendes an, vielleicht ists ja genau das, was du brauchst und du kannst auf den ganzen implode und explode kram verzichten (alternativ zu fgetcsv):



PHP-Code:
$query mysql_query("LOAD DATA INFILE {datei} FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'"); 
__________________
**********
arkos
**********
Mit Zitat antworten
  #4 (permalink)  
Alt 20-09-2006, 15:24
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

<<dass das dieses Script nur Zeile für Zeile liest. Das habe ich mein Programmieren überhaupt net bedacht>>

sowas habe ich noch nie gehört.
PHP-Code:
foreach($fcontents as $k=>$v){
$fcontents[$k]=explode(";" $v);
}

function 
getspaltenarray($index,$array){
$arr=array();
foreach(
$array[$index] as $ding){$arr[]=$ding;}
return 
$arr;
}
//spalte 2
print_r(getspaltenarray(1,$fcontents)); 
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #5 (permalink)  
Alt 20-09-2006, 15:33
sk4r
 Junior Member
Links : Onlinestatus : sk4r ist offline
Registriert seit: Sep 2005
Beiträge: 84
sk4r ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Slava
<<dass das dieses Script nur Zeile für Zeile liest. Das habe ich mein Programmieren überhaupt net bedacht>>

sowas habe ich noch nie gehört.
Was hast du noch nie gehört? Ich kanns dir gerne beweisen, dass dieses Script genau das macht, wie oben beschrieben. Sollte du es ausprobieren wollen, schicke ich dir gerne mein Script und dann kannst du mal schauen.

Also nochmal für alle. Ich glaube ich habs falsch erklärt. Hab folgendes Problem.

--------------------------------------------------------------------------------------
|1|| || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
Mit Zitat antworten
  #6 (permalink)  
Alt 20-09-2006, 15:41
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von sk4r

--------------------------------------------------------------------------------------
|1|| || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || |
| || || || || | [/B]

eins a erklärung

dann mach doch

"/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&"
"/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&"
"/(/"&"(/"/("&/(/"(/&"

also erklärs noch mal bitte verständlich - oder ich bin gerade zu blöd dafür und entschuldige mich
__________________
**********
arkos
**********
Mit Zitat antworten
  #7 (permalink)  
Alt 20-09-2006, 15:43
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

soll das gepostete die csv datei sein??
__________________
**********
arkos
**********
Mit Zitat antworten
  #8 (permalink)  
Alt 20-09-2006, 15:44
sk4r
 Junior Member
Links : Onlinestatus : sk4r ist offline
Registriert seit: Sep 2005
Beiträge: 84
sk4r ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Slava
<<dass das dieses Script nur Zeile für Zeile liest. Das habe ich mein Programmieren überhaupt net bedacht>>

sowas habe ich noch nie gehört.
Was hast du noch nie gehört? Ich kanns dir gerne beweisen, dass dieses Script genau das macht, wie oben beschrieben. Sollte du es ausprobieren wollen, schicke ich dir gerne mein Script und dann kannst du mal schauen.

Also nochmal für alle. Ich glaube ich habs falsch erklärt. Hab folgendes Problem.



Mein Script liest von links nach rechts und das ist für den ein Datensatz (eine Zeile in SQL (text1= einleitung (erste spalte), text2= haupttext (zweite spalte), text3=schlussteil (dritte spalte)).
So ich hoffe, dass ich einiger Maßen besser erklären konnte mit dem nicht so gut gelungenen Schaubild.

Trotzdem danke für die schnell hilfe.
Mit Zitat antworten
  #9 (permalink)  
Alt 20-09-2006, 15:46
sk4r
 Junior Member
Links : Onlinestatus : sk4r ist offline
Registriert seit: Sep 2005
Beiträge: 84
sk4r ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von arkos
eins a erklärung

dann mach doch

"/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&"
"/(/"&"(/"/("&/(/"(/&""/(/"&"(/"/("&/(/"(/&"
"/(/"&"(/"/("&/(/"(/&"

also erklärs noch mal bitte verständlich - oder ich bin gerade zu blöd dafür und entschuldige mich
Nein tut mir sehr leid. Das war ein Fehler von meinem Browser.
Mit Zitat antworten
  #10 (permalink)  
Alt 20-09-2006, 15:48
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

poste mal bitte eine beispielhafte csv datei (also den inhalt),
um den genauen aufbau mal zu sehen
__________________
**********
arkos
**********
Mit Zitat antworten
  #11 (permalink)  
Alt 20-09-2006, 15:55
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von sk4r
Hab folgendes Problem.

http://t.sunnynation.de/test/sql.jpg

Mein Script liest von links nach rechts und das ist für den ein Datensatz (eine Zeile in SQL (text1= einleitung (erste spalte), text2= haupttext (zweite spalte), text3=schlussteil (dritte spalte)).
Ja, schön - und?

Wenn es das ist, was du willst - dann hast du also gar kein Problem.

Wenn es nicht ist, was du willst - was zum Geier willst du dann?

Ich hatte dir explizite Rückfragen gestellt - wieso geht's du darauf nicht ein?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #12 (permalink)  
Alt 20-09-2006, 15:57
sk4r
 Junior Member
Links : Onlinestatus : sk4r ist offline
Registriert seit: Sep 2005
Beiträge: 84
sk4r ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So hier ist die CSV die ich mittel Excel exportiert habe.

CSV-DATEI
Mit Zitat antworten
  #13 (permalink)  
Alt 20-09-2006, 16:01
sk4r
 Junior Member
Links : Onlinestatus : sk4r ist offline
Registriert seit: Sep 2005
Beiträge: 84
sk4r ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: CSV mit PHP

Zitat:
Original geschrieben von wahsaga
Bitte lies die Regeln, und brich den Code um - vor deiner nächsten Antwort.


Was meinst du damit genau?

Zeile #1 mit drei Spalten a, b, c - entspricht drei zu erstellenden Datensätzen mit den Inhalten von a, b und c?

Oder möchtest du die Spalteninhalte aller Zeilen zu jeweils einem Datensatz zusammenfügen?


Schon mal fgetcsv zum lesen aus CSV-Dateien angeschaut?


Ja, schön - und?

Wenn es das ist, was du willst - dann hast du also gar kein Problem.

Wenn es nicht ist, was du willst - was zum Geier willst du dann?

Ich hatte dir explizite Rückfragen gestellt - wieso geht's du darauf nicht ein?
Also ich bin kein kleines Kind. Ich bin nur nicht so fit in solchen Sachen. Das gibt euch aber noch lange nicht das Recht in der art und weise mit mir umzugehen. Ich kann gerne auf euer board verzichten. So ist das nicht. Das www ist voll von solchen boards. Ich bin nur hier, weil ich bisher immer meine fragen hier gepostet hab und antwort darauf bekommen habe.

nun zu deinen rückfragen. es wird horizontal in die datenbank gespeichert. ich brauche aber das script, welches vertikal die datensätze ablegt. jetzt sag mir, dass du das nicht verstanden hast.
Mit Zitat antworten
  #14 (permalink)  
Alt 20-09-2006, 16:02
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du hast die felder schon in excel mit ; getrennt, oder?

deshalb steht über den editor nun das drin:

"1;";"2;"
"blub tex;";"blubtex2;"
"fasdfad;";"fasdfad2;"
"dfaefdfasdf;";"dfaefdfasdf2;"

wenn du sie richtig speichers (aus excel raus) kommt sowas bei raus:

1;2
blub tex;blubtex2
fasdfad;fasdfad2
dfaefdfasdf;dfaefdfasdf2
asdf;asdf2
asdf;asdf2
fasdfad;fasdfad2
dfaefdfasdf;dfaefdfasdf2
asdf;asdf2


dann kannst du die nummer ganz einfach mit dem load data infile befehl, denn ich vorhin erwähnt zeile für zeile wie du es willst in die db hämmern.
__________________
**********
arkos
**********
Mit Zitat antworten
  #15 (permalink)  
Alt 20-09-2006, 16:06
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ah sorry, hab das mit den spalten überlesen...

da muss ich noch mal drüber nachdenken und eine rauchen.
warum muss es vertikal sein (am rande gefragt) - wieviele flags hat dann deine db, oder wird die immer über "alter table" erweitert...

musst du nicht, aber erklär doch mal bitte warum du das so machst...
__________________
**********
arkos
**********
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:49 Uhr.