CSV Daten mit Daten ersetzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CSV Daten mit Daten ersetzen

    Ich habe Daten aus einer CSV Datei (Star Money) in ein Array geladen.
    Datum Buchung Konto Betrag

    Ich habe eine Datenbank in denen ich Buchungskonstanten angelegt habe.

    Jetzt möchte ich gerne, die CSV Daten durch meine Konstanten ersetzen.

    Wie kann ich das machen?

    Hier ist mal der teil der eine Übersicht über ein Konto ausgibt:
    PHP-Code:
    $daten_file $_REQUEST['file'];
            
    $konto $_REQUEST['q'];
                    
            print 
    "<h2>Buchungen von Konto <b>".$konto."</b> anzeigen :</h2> ";
            print 
    "<p><a href=\"index.php?do=content&amp;file=".$daten_file."\">Buchungen</a> - 
    <a href=\"index.php?do=kontenliste&amp;file="
    .$daten_file."\">Kontenliste</a> </p> ";

            print 
    "Datei: $daten_file - Konto: $konto<br>";
            
            
    $r "1";
        
            
    $handle fopen(''.$file_dir.''.$daten_file.'','r') or die ('Kann die Datei nicht öffnen');
            while ( (
    $data fgetcsv ($handle1024";")) !== FALSE ) {
            
                
    // Einträge Zählen und erste Zeile nicht ausgeben
                
    $row++;
                    
                 if (
    $row == 1) {
                 continue;
                 }
                
                
    // #[0] => Betrag;
                
    $Betrag $data[0];
                
                
    // Betrag - > Komma in Punkt umwandeln für das Rechnen
                
    $data[0] = str_replace(",",".","$data[0]");

                
                
    #[1] => Buchungstext 
                
    $Buchungstext $data[1];
                
                
    #[3] => Buchungstag 
                
    $Buchungstag $data[3];
            
                
    #[4] => Begünstigter/Absender - Bankleitzahl 
                
    $Bankleitzahl $data[4];
                
                
    #[5] => Begünstigter/Absender - Kontonummer 
                
    $Kontonummer $data[5];
                
                
    #[6] => Begünstigter/Absender - Name 
                
    $Absender $data[6];
                
                
    // Verwendungszweck                        
                
    $vwz ="".$data[26]."".$data[27]."".$data[28]."".$data[29]."".$data[30]."".$data[31]."
    <br>"
    .$data[32]."".$data[33]."".$data[34]."
    "
    .$data[35]."".$data[36]."".$data[37]."".$data
    [38]."".$data[39]." ";
                
                
                
    // Nur Buchungen des gleichen Kontos anzeigen
                
    if($konto == $data[5]){ 
                
                    
    // Buchungsdaten in ein Array schreiben wenn diese mit dem Konto gleich sind
                    
    if(!$Kontonummer == "" | !$Bankleitzahl == "" | !$Absender == ""){
                    
                    
    // Buchungsdaten in ein Array schreiben wenn diese gleich sind
                    
    $konto_daten[] ="<tr><td>$Buchungstag</td><td>$Absender</td><td>$konto</td><td>$Betrag</td></tr>";                
                                    
                    
    // Beträge in ein Array schreiben    
                    
    $summe[] = $data[0];
                    
                    }
                
                }

            }
                
                print
    "<table border='1' class=\"buchungen\"  width='95%' cellspacing='2' cellpadding='2'>";
                
                print 
    "<thead>";
                print 
    "<tr>";
                print 
    "<th>Datum</th>";
                print 
    "<th>Buchung</th>";
                print 
    "<th>Konto</th>";
                print 
    "<th>Betrag</th>";
                print 
    "</tr>";
                print 
    "</thead>";
                
                
    // Daten ausgeben
                
    foreach($konto_daten as $data){        
                            
                       print 
    "$data";

                }

                print
    "</table>";
                     
                    
                
    $sum.= array_sum($summe);        
                
    $saldo number_format($sum2',''');            
            
                print
    "<table border='1' width='95%'>";
                print
    "<td colspann=\"3\" width='80%'>&nbsp;</td>";
                print
    "<td style=\"background:#efefef;\" width='35%'><b>Summe: " $saldo " €</b></td>";
                print 
    "</tr>";
                print
    "</table>";    
                
        } 

    Mfg Maffy
    in der ruhe liegt die kraft

  • #2
    Re: CSV Daten mit Daten ersetzen

    Original geschrieben von maffy
    Ich habe eine Datenbank in denen ich Buchungskonstanten angelegt habe.

    Jetzt möchte ich gerne, die CSV Daten durch meine Konstanten ersetzen.

    Wie kann ich das machen?
    Also str_replace() eignet sich sehr gut zum ersetzen
    Vielleicht stellst Du Deine Frage nochmal konkreter!

    Kommentar


    • #3
      Ich habe verschiedene eigene Konten für eine einfache Buchführung.

      Z.B. Miete, Abfall, Nebenkosten etc.

      Die Buchungstexte in der CSV kann ich so nicht übernehmen. Da hier zu viele Werte angezeigt werden die ich nicht benötige.

      Hier ist das Problem:
      Deshalb möchte ich die Daten aus der CSV irgendwie mit meinen angelegten Buchungstexten vergleichen und bei Bedarf ersetzen.

      Da ja bei den meisten CSV Daten eine Kontonummer vorhanden ist, könnte mann diese Daten irgendwie mit meinen angelegten Daten vergleichen und dann austauschen.

      Wenn die CSV Daten bereinigt sind sollen diese nach Excel überspielt werden. Dafür könnte man ja PHPExcel verwenden.

      Mfg Maffy
      in der ruhe liegt die kraft

      Kommentar


      • #4
        Ich habs bisher so verstanden: Du hast sowas wie Kontoauszüge in CSV-Form. Die enthalten u.a. die Kontonummer des Empfängers und den Verwendungszweck.
        Der Verwendungszweck ist dir zu kryptisch. Du würdest ihn gern durch feste Begriffe wie "Abfall" oder "Miete" ersetzen.

        Soweit sogut. Woran erkennst du, ob ein Datensatz aus dem CSV ein Kandidat für Ersetzung ist? Du sagst zwar, dass du die Texte "Abfall", "Miete" usw. in einer DB gespeichert hast, aber hast du dazu auch z.B. die Kontonummer des Empfängers deiner Müllgebühren, Miete usw.? Das brauchst du auf jeden Fall ...

        Und damit wirds dann auch schon ein Kinderspiel. Du gehst ja eh alle CSV-Zeilen in einer Schleife durch. Nun mußt du bei jedem Schleifendurchlauf die Ersetzung aus der DB ziehen (SELECT vzweck FROM table WHERE empf_kto = $Kontonummer) und damit $vwz überschreiben.

        Kommentar


        • #5
          Ich möchte mir die Arbeit ersparen jede Buchung einzeln von Hand in Excel zu tippen.

          Besser währe es natürlich wenn mann das direkt mit einem Makro in VB für Excel machen würde. Mit VB kenne ich mich aber nicht aus.

          Hm, da die Kontonummer des Absenders in der CSV steht müsst man einen eindeutigen Schlüssel für jedes Konto defenieren mit dem man dann die Daten vergleichen und automatisch zuordnen kann.

          Mal schaun wie ich das machen kann.

          Mfg Maffy
          in der ruhe liegt die kraft

          Kommentar


          • #6
            Ich habe das ersetzen jetzt so gemacht, ist aber etwas umständlich das für jedes Konto so anzulegen.

            Das müsste man irgendwie automatisch für jedes Konto anlegen können.

            Z.B. das sich jedesmal ein Formular öffnet, wenn die Kontonummer unbekannt ist, wo man dann die Daten für ein unbekanntes Konto neu anlegen kann.

            PHP-Code:
                        // Konto xyx
                        
            if ($data[5] == "xyx"){
                            
            $newvwz         str_replace (xyx'Neuer Verwendungszeck'$konto);
                            
            $newabsender     str_replace (xyx'Absender'$konto);
                            
            $newkonto         str_replace (xyx'Neues Konto'$konto);
                        } 
            Zuletzt geändert von maffy; 07.12.2008, 14:54.
            in der ruhe liegt die kraft

            Kommentar

            Lädt...
            X