Statistik / Counter Problem

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

  • #16
    PHP-Code:
    $ich_bin_ein_array explode(...);

    $ich_bin_ein_array[0] = 'ich bin ein array-element; sogar ein string';

    #macht keinen sinn, aber soll's verdeutlichen
    echo '$ich_bin_ein_array ist ein '.$ich_bin_ein_array
    echo 
    '$ich_bin_ein_array[0] sagt: '.$ich_bin_ein_array[0]; 
    besser?

    Kommentar


    • #17
      ja das ist klar, nur das mit dem ganzen zusammenführen nun wider.
      auseinandernehmen ist explode, und wider zusammenfügen ist dann normalerweise implode.

      Kommentar


      • #18
        richtig, das implode() verlangt aber das array als zweites parameter. du gibst aber ein einzelnes element an. das ist nicht korrekt.

        Kommentar


        • #19
          ah.

          PHP-Code:
          $newarray implode('|'$temp); 
          so.

          Kommentar


          • #20
            ja.

            Kommentar


            • #21
              So, und dann noch Speichern,

              und nun hab ich folgenden Code:
              PHP-Code:
              <?php

              $datenbank 
              "statsistik/statistik.txt";

              $array file('$datenbank');

              foreach(
              $array as $wert){
                  
              $temp explode('|',$wert);
                  
              $temp[1] = intval($temp[1]) + 1;
                  
              $newarray implode('|'$temp);
               
              fwrite ($array $newarray);
               
              fclose ($array);
              }

              ?>
              allerdings erscheint dann im Browser eine Fehlermeldung
              Warning: file($datenbank): failed to open stream: No such file or directory

              Warning: Invalid argument supplied for foreach()


              allerdings müsste das Script ja den array[0] zuerst in der DB suchen, und wenn er einen gefunden hatt, dann den Counter um eins erhöhen.

              verstehst du was ich meine?

              Kommentar


              • #22
                das problem mit der fehlermeldung solltest du selbst beheben: http://www.php-resource.de/forum/sho...threadid=58111

                1. das schreiben gehört nicht in die schleife, denn es soll einmalig geschehen.

                2. in die schleife gehört eine if-abfrage, die die id der zeile oder so vergleicht, sonst erhöhst du ja alles "um eins".

                3. $newarray ist in wirklichkeit ein string und kein array. damit musst du das element überschreiben, das die zeile anfangs repräsentierte.

                4. anschließend $array zusammenführen nicht vergessen

                dann erst schreiben.

                Kommentar


                • #23
                  Also, FehlerProblem behoben,
                  Punkt eins Behoben

                  *meinerstergedanke* nun dachte ich alles sei fertig, dabei stecke ich nur noch tifer in der Sch**sse ;-)

                  also
                  PHP-Code:
                  $datenbank "statistik.txt";
                  $eintragungszeile "testeintrag";

                  $array file("$datenbank");

                  foreach(
                  $array as $wert){
                      
                  $temp explode('|',$wert);

                  if ( 
                  $temp[0] == $eintragungszeile ) {
                      
                  $temp[1] = intval($temp[1]) + 1;
                  }
                  $newstring implode('|'$temp);
                  }
                   
                  fwrite ($array $newstring);
                   
                  fclose ($array); 
                  so nun mit If abfrage, wenn $temp[0] "testeintrag" ist dann $temp[1]
                  um eins erhöhen

                  und nun das zusammenfügen am schluss da blocke ich noch nicht durch
                  also ist newarray ein string ( testeintrag|counterzahl)

                  Iloveratte

                  Kommentar


                  • #24
                    das fwrite() benutzst du noch falsch. aber soweit sind wir noch nicht.

                    $array hat von der änderung einer zeile noch nichts mitbekommen. aber - $array wird das sein, was wir anschließend in die datei zurück schreiben.

                    also, musst du in dieses array an der richtigen stelle das reinschreiben, was in $newstring steht.

                    Kommentar


                    • #25
                      Hallo, ja das $newarray eben ein string ist, kann ich ja nicht nur den string neu schreiben, aber ich weiss einfach nicht wie ich diesen String wider in den kompletten Array bekomme?
                      gib mir bitte einen Tip mehr?

                      Kommentar


                      • #26
                        PHP-Code:
                        $arr = array(=> 'erster'=> 'zweiter'=> 'dritter');

                        $arr[1] = 'veränderter zweiter';

                        print_r($arr); 

                        Kommentar


                        • #27
                          $newarray = '$newstring';

                          aber das bringt eigentlich nichts, da dann newstring einfach newarray heisst.
                          ich versteh das nun nicht.

                          Kommentar


                          • #28
                            ich dachte, du hättest das verstanden.

                            des weiteren: du merkst, ich spreche ein spezielles element von $arr an, um es zu verändern.

                            Kommentar


                            • #29
                              $arr = array($newstring);

                              ?

                              Kommentar


                              • #30
                                nein, ich verändere das zweite element.

                                Kommentar

                                Lädt...
                                X