mayooo
Grünschnabel
Hallo zusammen,
viele User haben bereits ihre Probleme mit CSV, XLS und PHP bzgl. der Zeilenumbrüche geschildert, leider ergab sich da bei meinem Problem keine Lsg., sodass ich nun doch mal ein neues Thema eröffnen muss.
Ich öffne die csv mittels file und werte sie dann zeilenweise aus. Leider krieg ich den Zeilenumbruch in einigen Feldern nicht weg, sodass mitten im Datensatz die Zeile zu Ende ist und die foreach-Schleife von neuem anfängt und im nächsten Datensatz mit dem Rest des vorhergehenden Datensatz fortfährt.
Zur Veranschaulichung noch ein Screen. Für schnelle Hilfe bin ich sehr dankbar.
viele User haben bereits ihre Probleme mit CSV, XLS und PHP bzgl. der Zeilenumbrüche geschildert, leider ergab sich da bei meinem Problem keine Lsg., sodass ich nun doch mal ein neues Thema eröffnen muss.
Ich öffne die csv mittels file und werte sie dann zeilenweise aus. Leider krieg ich den Zeilenumbruch in einigen Feldern nicht weg, sodass mitten im Datensatz die Zeile zu Ende ist und die foreach-Schleife von neuem anfängt und im nächsten Datensatz mit dem Rest des vorhergehenden Datensatz fortfährt.
PHP:
<?php
$lines = file ('adressen.csv');
foreach ($lines as $line_num => $line) {
if($line_num == 0)
{
$drop = "DROP TABLE IF EXISTS `adressen`";
mysql_query($drop,$ltaek);
$new_tab = "CREATE TABLE `adressen` (
`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`IDNr` INT NOT NULL ,
`Name` VARCHAR( 80 ) NOT NULL ,
`Vorname` VARCHAR( 80 ) NOT NULL ,
`akaGrad` VARCHAR( 20 ) NOT NULL ,
`Praxis` TEXT NOT NULL ,
`PStrasse` VARCHAR( 150 ) NOT NULL ,
`PPLZ` VARCHAR( 5 ) NOT NULL ,
`POrt` VARCHAR( 100 ) NOT NULL ,
`PKreis` INT( 5 ) NOT NULL ,
`PTelNr` VARCHAR( 100 ) NOT NULL ,
`PFax` VARCHAR( 100 ) NOT NULL ,
`GZ` TEXT NOT NULL) ";
echo '<pre>'.$new_tab.'</pre>';
//mysql_query($new_tab);
}else
{
$insert = "INSERT INTO `adressen` ( `ID` , `IDNr` , `Name` , `Vorname` , `akaGrad` , `Praxis` , `PStrasse` , `PPLZ` , `POrt` , `PKreis` , `PTelNr` , `PFax` , `GZ`)
VALUES (''";
$line = preg_replace('#\r\n|\r(?!\n)|\n(?<!\r)#', ' ', $line);
$line = preg_replace('#"#', '', $line);
$eintrag = explode(";",$line);
$i=0;
foreach($eintrag as $inhalt) // Spaltenweise auslesen
{
$i++;
// ich möchte nicht alle spalten auslesen, sondern nur die 1., 2., 3., 8. usw. deshalb die folgende switch
switch($i)
{
case 1: // IDNr
case 2: // Name
case 3: // Vorname
case 8: // akaGrad
case 13: // Praxis
case 14: // PStraße
case 15: // PPLZ
case 16: // POrt
case 30: // PKreis
case 31: // PTelNr
case 32: // PFax
$insert .= ", '".nl2br(htmlentities(stripslashes($inhalt)))."'";
}
}
$insert .=")";
//mysql_query($insert) or die(mysql_error());
echo '<pre>'.$insert.'</pre>';
}
}
?>
Zur Veranschaulichung noch ein Screen. Für schnelle Hilfe bin ich sehr dankbar.
Anhänge
Zuletzt bearbeitet: