Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert im einfachen Array ändern

Einklappen

Neue Werbung 2019

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

  • Wert im einfachen Array ändern

    Hallo liebe Gemeinde

    Ich habe nun schon den ganzen Tag das Problem, das ich einen Wert in einem einfach Array ändern möchte, aber ich bekomm das irgendwie nicht auf die Kette

    Mein Array ist so aufgebaut:
    PHP-Code:
    $array = array(123271827.5); 
    und wird dann in einer MySQL Datenbank gespeichert:
    PHP-Code:
    $string serialize($array);
    mysql_query('INSERT INTO table (id,array) VALUES ("1","'.$string.'")'); 
    Alles kein Problem. Auslesen funktioniert auch. Allerdings bekomm ich keinen Wert geändert und wieder gespeichert

    Bitte helft mir

  • #2
    Allerdings bekomm ich keinen Wert geändert und wieder gespeichert
    Das tut Dein Code ja auch nicht. *Kristallkugel roll*
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Natürlich tut er das nicht... hab schon alles mögliche durchprobiert, scheinbar in falscher Kombination oder wie auch immer. Jedenfalls hat nichts auch nur ansatzweise funktioniert. (array_splice, array_walk) ich komm einfach nicht weiter...

      Kommentar


      • #4
        und auch meine Kristallkugel zeigt NICHT den Code, mit dem du das UPDATE machen möchtest - übrigens ist dein gesamter Ansatz höchst fragwürdig - Ein Feld in der Datenbank soll ATOMAR sein - du speicherst aber (wenn auch serialisiert) mehrere Daten darin - wäre es nicht sinnvoller jeden Array-Eintrag getrennt abzuspeichern? dann ist das Ändern auch viel einfacher
        [Quote=nikosch]
        So glatt kann doch wirklich keiner sein.[/quote] :roll:

        Kommentar


        • #5
          PHP-Code:
          $array = array( 'keyName''val' );

          $array[0] = 'neuer Wert';
          $array['keyName'] = 'noch ein neuer Wert'
          Basiswissen.

          Ist das alles oder hast du dich falsch ausgedrückt?

          Gruß
          Spiegel Funktion Live: https://www.youtube.com/watch?v=JI3Df7-KFtw

          Kommentar


          • #6
            Da hab ich mich wohl falsch ausgedrückt, oder ich verstehe es noch nicht recht

            btw: habe das ganze jetzt umgebaut und nutze json.

            Hier der Code um das Array anzulegen und abzuspeichern:
            PHP-Code:
            $array = array('id' => '123','name' => '27','dauer' => '18','zusatz' => '27.5');

            $string json_encode($array);

            mysql_query('INSERT INTO table (nutzer,array) VALUES ("1","'.mysql_real_escape_string($string).'")'); 
            Und nun der zum auslesen:

            PHP-Code:
            $result mysql_query('SELECT array FROM table');
            $row mysql_fetch_assoc($result);
            $string $row['array'];

            $array json_decode($stringtrue);

            foreach(
            $array  as $key => $value) {
            echo 
            $key " = " $value " ";

            Also gibt er mir auf dieser Seite das Array (wie ihr euch sicher denken könnt) wie folgt aus:
            id = 123 name = 27 dauer = 18 zusatz = 27.5
            Nun fehlt mir allerdings die Idee für die Umsetzung, einen Wert zu ändern und das Array dann wieder abzuspeichern.

            Nehmen wir mal an, ich möchte die Dauer +1 addieren.

            Wenn ich jetzt aber
            PHP-Code:
            $neues_array $array[dauer]+1
            funktioniert das ja logischerweise nicht und gibt 1 aus.


            Seid bitte nachsichtig mit mir, denn was arrays angeht, bin ich blutiger Anfänger ;D

            wäre es nicht sinnvoller jeden Array-Eintrag getrennt abzuspeichern?
            In meinem Fall eher nicht. Allerdings bin ich kurz davor es so zu machen. Aber damit umgehe ich ja in diesem Fall meine Wissenslücke


            P.S.: Danke, das ihr mir trotzdem helft

            Kommentar


            • #7
              PHP-Code:
              $array['keyName'] = 'noch ein neuer Wert'
              JETZT, fällt es mir wie Schuppen von den Augen
              Schande über mein Haupt

              Es hat doch funktioniert Vielen Dank dafür!

              Kommentar


              • #8
                Zitat von web2go Beitrag anzeigen
                JETZT, fällt es mir wie Schuppen von den Augen
                Schande über mein Haupt

                Es hat doch funktioniert Vielen Dank dafür!
                Hehe, gut Erkenntnis ist der erste Schritt

                So hast du nun den Array geändert, aber dieser wird nicht innerhalb der Datenbank gespeichert.

                Damit das in der Datenbank geändert wird, musst du die geänderten Werte noch in einer SQL Anweisung eingeben.

                Dafür kannst du den UPDATE Befehl verwenden.

                PHP-Code:
                $neuerWert 4;

                $q mysql_query'UPDATE FROM `tabelle` SET `spalte`= "'.$neuerWert.'" WHERE `id` = "'.$id.'" LIMIT 1' );

                if( 
                $q ){
                  echo 
                "Erfolgreich geändert.";

                Gruß
                Spiegel Funktion Live: https://www.youtube.com/watch?v=JI3Df7-KFtw

                Kommentar


                • #9
                  So hast du nun den Array geändert, aber dieser wird nicht innerhalb der Datenbank gespeichert.

                  Damit das in der Datenbank geändert wird, musst du die geänderten Werte noch in einer SQL Anweisung eingeben.
                  das habe ich bereits erledigt trotzdem danke

                  Kommentar

                  Lädt...
                  X