Ankündigung

Einklappen
Keine Ankündigung bisher.

CSV Datei einlesen, auslesen, updaten

Einklappen

Neue Werbung 2019

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

  • CSV Datei einlesen, auslesen, updaten

    Ich habe da einige Probs mit dem schreiben, auslesen,
    und updaten einer csv.datei. es sollen funktionen
    benutzt werden die daten in die Datei schreiben,
    auslesen und updaten.
    Folgendes habe ich bis jetzt.:

    PHP-Code:
    <?php //definieren der drei Funktionen 
    function create_highscore($datei$anz$max$name){ 
    $fp fopen("highscore.csv","w+");{ 
      if (
    $fp!== false) { 
      for (
    $i 0$icount($anz); $i++){ 
      
    $zeile implode(","$anz[$i]). "\n"
        
    fputs($fp$zeile); 
        
    fputs($fp$max$name); 
        
    fclose($fp); 
      } 
      } 
      } 

    function 
    show_highscore($datei

    $fp fopen("highscore.csv","r");{ 
    if (
    $fp == false){ 
    $fehler "Datei nicht gefunden"

    else { 
    echo 
    "<table>"
    foreach (
    $zeile as $punkte => $name){ 
    echo 
    "<tr>"
    echo 
    "<td>" $punkte "</td>"
    echo 
    "<td>" $name "</td>"
    echo 
    "</tr>"

    echo 
    "</table>"



    if (
    $fehler != "") { 
    return 
    $fehler

    else { 
    return 
    $list




    function 
    update_higscore($datei$punkte$name

    $fp fopen("highscore.csv","r");{ 
    while (! 
    feof($datei)){ 
    $zeile fgets($fp50); 
    if ( 
    count($zeile) >2) { 
    $csv_array[]=$zeile


    return 
    $csv_array 

      } 
        } 

    ?> 
    <html> 
    <head> 
    <title>Highscore</title> 
    </head> 
    <body> 
    <?php 
    $datei 
    "highscore.csv"
    $anz 20
    $max 1000
    $name "irgendwer"
    //Erzeugung der Highscore-Tabelle: 
    create_highscore($datei$max$anz$name); 
    echo 
    "Highscore-Tabelle direkt nach der Erzeugung:
    "

    show_highscore($datei); 
    //Einfügen mehrerer Datensätze: 
    update_highscore($datei990"Uwe"); echo "Highscore-Tabelle nach Einfügen von Uwe:
    "

    show_highscore($datei); 
    update_highscore($datei350"Hugo"); echo "Highscore-Tabelle nach Einfügen von Hugo:
    "

    show_highscore($datei); 
    update_highscore($datei2000"Karl"); echo "Highscore-Tabelle nach Einfügen von Karl:
    "

    show_highscore($datei); 
    ?> 
    </body> 
    </html>
    mein problem ist nun das in der funktion create_highscore
    20zeilen erzeugt wrden sollen soviel wie in $anz stehen.
    dann soll $max, $name in der ersten zeile stehen,
    die anderen punkte dementsprechend absteigend
    bis zeile 20. in der functio show_highscore nur die
    ausgabe der Liste in einer tabelle. und in
    update_highscore einmal einlesen und dann
    die neuen punkte von Uwe, hugo Karl eintragen
    aber irgendwo hänge ich da fest kann mir jemand
    da bitte weiterhelfen.?
    Viele Grüsse

  • #2
    Erstmal den Code konsequent einrücken.
    Und die geschweiften Klammern bei
    fopen(...); {
    fgets/fputs
    fclose
    }

    sind komplett überflüssig. Weglassen.

    vielleicht auch interessant:
    http://php.net/fgetcsv
    http://php.net/fputcsv

    Kommentar


    • #3
      Hallo Bruchpilot ist das so jetzt besser ??

      PHP-Code:
      <?php
      <?php //definieren der drei Funktionen  
        
      function create_highscore($datei$anz$max$name)
          {  
           
      $fp fopen("highscore.csv","w+");     // Öffnen der Datei zum schreiben
           
      if ($fp!== false) {  
             for (
      $i 0$icount($anz); $i++)     // Durchlauf der Datei bis Ende
             
      {  
             
      $zeile implode(","$anz[$i]). "\n";  
                
      fputs($fp$zeile);  
                
      fputs($fp$max$name);  
                
      fclose($fp);  
          }
         }
       }
        function 
      show_highscore($datei)  
         {  
          
      $fp fopen("highscore.csv","r");          // Datei zum lesen öffnen
          
      while ( ( $zeile fgetcsv ($fp4096,","))    // Daten aus Datei in $zeile lesen
               
      for ($i=0$i $zeile$i++)
          if (
      $fp == false) {  
          
      $fehler "Datei nicht gefunden";  
         }  
         else {  
          echo 
      "<table>";  
           foreach (
      $zeile as $punkte => $name)
        }
        {  
          echo 
      "<tr>";  
          echo 
      "<td>" $punkte "</td>";  
          echo 
      "<td>" $name "</td>";  
          echo 
      "</tr>";  
        }  
           echo 
      "</table>";  
          }  
          if (
      $fehler != "") {  
          return 
      $fehler;  
        }  
            else {  
            return 
      $list;  
        }  
         

         function 
      update_higscore($datei$punkte$name)  
        {  
           
      $fp fopen("highscore.csv","r"); 
            while (! 
      feof($datei)) {  
             
      $zeile fgets($fp50);  
              if ( 
      count($zeile) >2)  {  
               
      $csv_array[]=$zeile;  
           }  
          }  
      return 
      $csv_array ;  
      }  

      ?> 
      <html>
      <head>
      <title>Highscore</title>
      </head>
      <body>
      <?php
      $datei 
      "highscore.csv";
      $anz 20;
      $max 1000;
      $name "irgendwer";
      //Erzeugung der Highscore-Tabelle:
      //create_highscore($datei, $max, $anz, $name);
      echo "Highscore-Tabelle direkt nach der Erzeugung:
      "
      ;
      show_highscore($datei);
      //Einfügen mehrerer Datensätze:
      update_highscore($datei990"Uwe"); echo "Highscore-Tabelle nach Einfügen von Uwe:
      "
      ;
      show_highscore($datei);
      update_highscore($datei350"Hugo"); echo "Highscore-Tabelle nach Einfügen von Hugo:
      "
      ;
      show_highscore($datei);
      update_highscore($datei2000"Karl"); echo "Highscore-Tabelle nach Einfügen von Karl:
      "
      ;
      show_highscore($datei);
      ?>
      </body>
      </html>
      ?>
      Habe dies geändert wie ich jetzt habe, in der function show_highscore habe ich auch einges geändert.

      Kommentar


      • #4
        Zitat von Pedro_php_Noob
        Hallo Bruchpilot ist das so jetzt besser ??
        sag mal, würfelst du es aus, wie du die klammern setzt?

        die erste funktion create_highscore($datei, $anz, $max, $name) hat drei geöffnete geschweifte klammern und nur zwei geschlossene.

        ... lässt sich in deinem quelltext fortsetzen.

        bitte korrigiere deinen code bezüglich der klammerung.

        Kommentar


        • #5
          Habe im Script einges noch anders gemacht so wie ich es jetzt habe.
          sag mal, würfelst du es aus, wie du die klammern setzt
          nein ich würfel net hatte die Klammern wohl übersehen da ich sau müde war.
          Sorry soll net wieder vorkommen.

          Kommentar


          • #6
            Und was sollen bspw bei
            {
            echo "<tr>";
            echo "<td>" . $punkte . "</td>";
            echo "<td>" . $name . "</td>";
            echo "</tr>";
            }
            die Klammern?

            Erstmal wirklich konsequent und konzentriert nachdenken und einrücken.
            Vielleicht erledigt sich dabei schon gleich das Problem.

            Kommentar


            • #7
              In dem Workshop den ich gelese habe steht nach einer schleife die echo in
              geschweifte klammer setzen.

              Ich denke nach habe ja auch schon zwischenzeitlich ne Ausgabe gehabt die ich einfach in die csv.datei reingesetzt hatte,
              nu geht wieder nix alles leer, auch keine Fehler ausgabe im Moment.

              Kommentar

              Lädt...
              X