[PHP] Daten per PHP in CSV-Datei speichern

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Eimsbush, 23. März 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 23. März 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Daten per PHP in CSV-Datei speichern

    Hallo RR,

    hab mal wieder ein Problem.

    Dieses mal möchte ich Daten aus PHP in eine CSV Datei schreiben.
    Und zwar möchte ich genau diese Ausgabe (das rot markierte) in eine CSV packen.

    Bild

    Mein Quelltext, der diese Tabelle erstellt ist folgender:
    PHP:

    <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1">
    <link rel="icon" href="../../pictures/favicon.ico" type="image/ico">
    <?php
    $mysqluser 
    'admin' ;
    $mysqlpasswd  '1223454' ;
    $mysqlhost  'localhost' ;
    $database  'azubi_data_csv' ;

    $bewertung  $_GET [ 'action' ];

    mysql_connect  ( $mysqlhost $mysqluser $mysqlpasswd ) or die( 'ERROR!' ); 
    mysql_select_db  ( $database );
    if(isset(
    $_POST [ 'beruf' ]))
    {
    if ( 
    $_POST [ 'beruf' ] ==  "Industriekaufleute/KS-IB/KS-AC"  )
            {
                
    $beruf  "IK_IB_AC" ;
            }
        if ( 
    $_POST [ 'beruf' ] ==  "Informatikberufe/KS-WI"  )
                {
                    
    $beruf  "IF_WI" ;
                }
            if ( 
    $_POST [ 'beruf' ] ==  "Verfahrensmechaniker/-in"  )
                    {
                        
    $beruf  "VM" ;
                    }
                if ( 
    $_POST [ 'beruf' ] ==  "Werkzeugmechaniker/-in"  )
                        {
                            
    $beruf  "WM" ;
                        }
                    if ( 
    $_POST [ 'beruf' ] ==  "Mechatroniker/Elektroniker/KS-ET"  )
                            {
                                
    $beruf  "MT_ET" ;
                            }
                        if ( 
    $_POST [ 'beruf' ] ==  "Zerspanungsmechaniker/-in"  )
                                {
                                    
    $beruf  "ZM" ;
                                }
                            if ( 
    $_POST [ 'beruf' ] ==  "Industriemechaniker/-in"  )
                                    {
                                        
    $beruf  "IM" ;
                                    }
                                if ( 
    $_POST [ 'beruf' ] ==  "Kombistudenten - WING/MB"  )
                                        {
                                            
    $beruf  "WI_MB" ;
                                        }
                                    if ( 
    $_POST [ 'beruf' ] ==  "Umschueler"  )
                                            {
                                                
    $beruf  "US" ;
                                            }
    }
    else
    {
    $beruf  $_GET [ 'action2' ];
    }

    //Macht den ersten Buchstaben groß                                        
    $str  $bewertung ;
    $str  ucfirst ( $str );

    echo (
    '
    <html>
    <head>
    <title>BBS | Auswertung - '
    . $str . '</title>
    <link rel="stylesheet" type="text/css" href="../../data/style.css">
    <script src="../../data/script.js" type="text/javascript"></script>
    <form action="exportcsv.php" method="post" name="auswertung_tab">
    </head>
    <body>
    <center>
    <a href="tab_auswertung.php?action=erklaerung&action2='
    . $beruf . '">Erklaerung</a>
    <a href="tab_auswertung.php?action=lernerfolg&action2='
    . $beruf . '">Lernerfolg</a>
    <a href="tab_auswertung.php?action=betreuung&action2='
    . $beruf . '">Beurteilung</a>
    <a href="tab_auswertung.php?action=gesamteinsch&action2='
    . $beruf . '">Gesamteinschätzung</a>
    <a href="tab_gut.php">Gut</a>
    <a href="tab_schlecht.php">Schlecht</a>
    </center>
    <br>
    '
    );
    if ( 
    $beruf  ==  "IK_IB_AC"  )
            {
                
    $beruf_ausgabe  "Industriekaufleute/KS-IB/KS-AC" ;
            }
        if ( 
    $beruf  ==  "IF_WI"  )
                {
                    
    $beruf_ausgabe  "Informatikberufe/KS-WI" ;
                }
            if ( 
    $beruf  ==  "VM"  )
                    {
                        
    $beruf_ausgabe  "Verfahrensmechaniker/-in" ;
                    }
                if ( 
    $beruf  ==  "WM"  )
                        {
                            
    $beruf_ausgabe  "Werkzeugmechaniker/-in" ;
                        }
                    if ( 
    $beruf  ==  "MT_ET"  )
                            {
                                
    $beruf_ausgabe  "Mechatroniker/Elektroniker/KS-ET" ;
                            }
                        if ( 
    $beruf  ==  "ZM"  )
                                {
                                    
    $beruf_ausgabe  "Zerspanungsmechaniker/-in" ;
                                }
                            if ( 
    $beruf  ==  "IM"  )
                                    {
                                        
    $beruf_ausgabe  "Industriemechaniker/-in" ;
                                    }
                                if ( 
    $beruf  ==  "WI_MB"  )
                                        {
                                            
    $beruf_ausgabe  "Kombistudenten - WING/MB" ;
                                        }
                                    if ( 
    $beruf  ==  "US"  )
                                            {
                                                
    $beruf_ausgabe  "Umschueler" ;
                                            }

    echo(
    '
    <center><strong><u>'
    . $beruf_ausgabe . ' <br> ' . $str . '</u></strong><br><br></center>
    <table>

    '
    );


    //Erstellen eines Arrays der PI-Nummern
    $result = mysql_query ( "SELECT pinr FROM auszubildende where beruf = '" . $beruf . "'" );
    $anzahl_pinr  mysql_num_rows ( $result );

    while(
    $row  mysql_fetch_array ( $result ))
    {
    $pinr [] =  $row [ 'pinr' ]; 
    }

    //Erstellen eines Arrays der Prüfungszeiten
    $result2  mysql_query ( "SELECT distinct pruefungszeit FROM auszubildende where beruf = '" . $beruf . "'" );
    $anzahl_jahr  0 ;

    while(
    $row2  mysql_fetch_array ( $result2 ))
    {
        
    $abschluss [] =  $row2 [ 'pruefungszeit' ]; 
        
    $anzahl_jahr  $anzahl_jahr  1 ;
    }

    //Erstellen eines Arrays der Kennungen
    $result3  mysql_query ( "SELECT distinct kennung FROM csvdaten order by kennung asc" );
    $anzahl_abteilung  0 ;

    while(
    $row3  mysql_fetch_array ( $result3 ))
    {
    $abteilung [] =  $row3 [ 'kennung' ];
    $anzahl_abteilung  $anzahl_abteilung  1 ;
    }
     
    // Arrayausgabe zur Überprüfung der Arrays


     
    echo( '<table align="center"><tr>' );

    //Erstellt die Spalte "Bereich" ( nur bei technischen Berufen )
    if ( $beruf  ==  "US"  ||  $beruf  ==  "VM"  ||  $beruf  ==  "WM"  ||  $beruf  ==  "MT_ET"  ||  $beruf  ==  "IM"  ||  $beruf  ==  "ZM"  ||  $beruf  ==  "WI_MB"  ||  $beruf  ==  "US"  )
        {
            echo (
    '
            <td rowspan="2"><strong>Bereich:</strong></td>
            '
    );
        } 

    //Erstellt die Spalte "Abteilung"
    echo ( '<td rowspan="2"><strong>Abteilung:</strong></td>' );

    //Schreibt die Jahrgänge als Überschrift
    for( $count  0 $count  $anzahl_jahr $count ++)
    {
        
        echo (
    '
        <td><strong>'
    . $abschluss [ $count ]. '</strong></td>
        '
    );
    }

    echo (
    '</tr><tr>' );

    //Schreibt "Ø / Personen" unter die Jahrgänge
    for( $count  0 $count  $anzahl_jahr $count ++)
    {
        echo (
    '
        <td align="center">Ø / Personen</td>
        '
    );
    }

    echo (
    '</tr>' );

    $check  0 ;
    for(
    $count  0 $count  $anzahl_abteilung $count ++)
    {

        
    //Zeilenüberschrift
        
    echo ( '
        <tr>
        '
    );
        
        
    //Schreibt die Bereiche in eine Spalte ( nur bei technischen Berufen )
        
    if ( $beruf  ==  "US"  ||  $beruf  ==  "VM"  ||  $beruf  ==  "WM"  ||  $beruf  ==  "MT_ET"  ||  $beruf  ==  "IM"  ||  $beruf  ==  "ZM"  ||  $beruf  ==  "WI_MB"  ||  $beruf  ==  "US"  )
        {
            
    $tresult  mysql_query ( "SELECT bereich FROM csvdaten WHERE kennung = '" . $abteilung [ $count ]. "'" );
            
    $row  =   mysql_fetch_array ( $tresult );
            echo
            (
    '
                <td>'
    . $row [ 'bereich' ]. '</td>
            '
    );
            
        }
        
        
    //Schreibt die Abteilungen in eine Spalte
        
    echo
        (
    '
            <td>'
    . $abteilung [ $count ]. '</td>
        '
    );
        
            
    //Schreibt die Durchschnittsbewertungen + Personenzahl in die entsprechenden Spalten
            
    for( $count2  0 $count2  $anzahl_jahr $count2 ++)
            {

                echo 
                (
    '
                    <td align="center"> 
                '
    );
                
                
    $avg  0 ;
                
    $merker  0 ;
                
                
                
    //Array leeren
                
    $pinr_select  = array();

                
    $result4  mysql_query ( "SELECT pinr FROM auszubildende where beruf = '" . $beruf . "' and pruefungszeit = '" . $abschluss [ $count2 ]. "'order by pinr asc" );
                
    $anzahl_pinr_select  mysql_num_rows ( $result4 );
                
                
    //Neuer PI-Nummer Array wird erstellt
                
    while( $row4  mysql_fetch_array ( $result4 ))
                {
                    
    $pinr_select [] =  $row4 [ 'pinr' ]; 
                }
                
                
    //Der Durchschnittswert der Bewertung "Erklaerung" wird berechnet
                
    for( $count3  0 $count3  $anzahl_pinr_select $count3 ++)
                {
                        
    $result5  mysql_query ( "SELECT  $bewertung  FROM csvdaten where pinr = '" . $pinr_select [ $count3 ]. "' and kennung = '" . $abteilung [ $count ]. "'" );
                    
                            while(
    $row5  mysql_fetch_array ( $result5 ))
                                {
                                    
    $merker  $merker  1 ;
                                    
    $pruef  $row5 [ $bewertung ];
                                    if( 
    $pruef  !=  "" )
                                    {
                                        
    $avg  $avg  $row5 [ $bewertung ];
                                    }
                                    else
                                    {
                                    
    $check  1 ;
                                    }
                                }
                                                            
                }
                
                
    $avg  $avg  $merker ;
                
    $avg  round ( $avg 2 );
            
                
                
                
                

                
                
    //Ausgabe Durchschnittswert / Personenzahl
                
    echo 
                (
    '
                    '
    . $avg . ' / ' . $merker . '<br>
                '
    );
                
                echo 
                (
    '
                    </td>
                '
    );
            
            }


        echo(
    '
        </tr>
        '
    );
    }

    echo (
    '
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="submit" name="subber" value="Export"></td>
    </table>
    '
    );
    if (
    $check  ==  1 )
    {
    echo(
    '<center><font color="#FF0000"><b>Eine oder mehrere Bewertungen wurden noch nicht durchgeführt!<br>
    Das Ergebnis ist somit noch nicht Aussagefähig!</b></font></center>'
    );
    }



    echo (
    '
    </form>
    </body>
    </html>'
    );
    mysql_close ();
    ?>
    Das Problem ist, dass ich diese Tabelle nicht einfach auslese sondern filtere/berechne und dann erst in eine Tabelle schreibe mit vielen Variablen.

    1.Ich hab überhaupt keinen Anfang gefunden, wie ich überhaupt irgendwas in eine CSV schreibe.
    2.Wie verbinde ich meine variablen ($avg, $merker, $abteilung[$count],$bereich) korrekt ?

    Muss das bis Donnerstag rausbekommen haben gehört zu nem Projekt
     
  2. 23. März 2010
    AW: Daten per PHP in CSV-Datei speichern

    1. PHP: fputcsv - Manual
    2. strings verknüpft man mit ".", in deinem fall brauchst du aber nen array
    PHP:
    $fields  = array( $avg $merker $abteilung  ...);
     
  3. 24. März 2010
    AW: Daten per PHP in CSV-Datei speichern

    übergabe funzt eintragung funzt auch
    wie kann ich jetzt einen Zeilenumbruch erreichen, also dass er mir 4 spalten für 4 variable anlegt.

    done..
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.