Array in Datenbank speichern

08/30/2014 17:07 Jonаs#1
PHP Code:
Array ( [messages] => Array ( [0] => Array ( [message_id] => 6019916 [from] => 491771789328 [timestamp] => 1409409328 [text] => test ) [1] => Array ( [message_id] => 6019919 [from] => 491771789328 [timestamp] => 1409409330 [text] => test ) ) [unread] => 
So sieht mein Array aus den ich bekomme.

Ich möchte jede Message in der Datenbank speichern also die jeweiligen Message_ID, From, Timestamp & Text - Wie kann ich das machen?

Gruß
08/30/2014 17:13 Else#2
Erstelle für jede Message einen Eintrag in Deiner Tabelle, in der Datenbank!? Die Werte aus dem Array auslesen, den SQL-Syntax generieren und ausführen?
08/30/2014 17:18 Jonаs#3
Ja, wie krieg ich aber die Werte so extrahiert das ich Sie in einen Query bekomme?
08/30/2014 17:32 Mete#4
Ja das geht ohne probleme sprech die einzeln-werte so an:

PHP Code:
$DeinArray = Array ( [messages] => Array ( [0] => Array ( [message_id] => 6019916 [from] => 491771789328 [timestamp] => 1409409328 [text] => test ) [1] => Array ( [message_id] => 6019919 [from] => 491771789328 [timestamp] => 1409409330 [text] => test ) ) [unread] => );

$MessageID $DeinArray[0]["message_id"]; 
08/30/2014 19:06 PixelTree#5
Quote:
Originally Posted by Mete View Post
Ja das geht ohne probleme sprech die einzeln-werte so an:

PHP Code:
$DeinArray = Array ( [messages] => Array ( [0] => Array ( [message_id] => 6019916 [from] => 491771789328 [timestamp] => 1409409328 [text] => test ) [1] => Array ( [message_id] => 6019919 [from] => 491771789328 [timestamp] => 1409409330 [text] => test ) ) [unread] => );

$MessageID $DeinArray[0]["message_id"]; 
würde fast klappen, der array aufbau ist anders.

PHP Code:
<?php
$arr 
= Array
        (
            
"messages" => Array
            (
                
=> Array
                    (
                        
"message_id" => 6019916,
                        
"from" => 491771789328,
                        
"timestamp" => 1409409328,
                        
"text" => "test",
                    ),
                
=> Array
                (
                    
"message_id" => 6019919,
                    
"from" => 491771789328,
                    
"timestamp" => 1409409330,
                    
"text" => "test",
                )
            ),
            
"unread" => 0
        
); 

foreach(
$arr as $messages)
{
    if(
is_array($messages))
    {
        foreach(
$messages as $message)
        {
            echo 
"message id: "$message["message_id"] ."<br />";
            
//andere werte wie from können hier auch noch abgerufen werden.
        
}
    }
    else
    {
        echo 
"unread: "$messages ."<br /";
    }
}

?>
edit:
das ist bestimmt etwas schöner und kürzer
PHP Code:
foreach($arr["messages"] as $message)
{
    echo 
"message id: "$message["message_id"] ."<br />";
}
echo 
"unread: "$arr["unread"] ."<br /"
08/30/2014 21:08 Mete#6
Quote:
Originally Posted by PixelTree View Post
würde fast klappen, der array aufbau ist anders.
Lach stimm hast recht, aber noch ein kleiner tip an den Threadersteller :)
Schau dir mal den PHP-Debugger "Kint" an ([Only registered and activated users can see links. Click Here To Register...])
Binde das ein
PHP Code:
<?php 
require 'pfad/zu/kint/Kint.class.php';

//Ausgabe des Übersichtlich dargestellten Wertes / Objekt / Arrays mit d($myArray);
d($deinUrsprungsarray);
?>
Gerade wenn man die Übersicht bei solchen sachen nur schwer bekommt, hilft das teil echt höllisch weiter, zeigt auch die Möglichen Funktionen eines Objektes einer Klasse etc. echt nice :)
08/30/2014 21:25 dowhile#7
Oder er lernt einfach die Grundlagen ...
08/30/2014 21:41 Mete#8
Quote:
Originally Posted by dowhile View Post
Oder er lernt einfach die Grundlagen ...
Die sollte man sowieso lernen, aber wenn er das alles lernen möchte anhand von einem Praxis-Scenario, wie es scheint, sind solche Tools/Hilfen doch Ideal, um ein Sichereres Bild davon zu bekommen, was das Lernen schlicht Sicherer macht ;) Mir haben solche optischen Darstellungen am Anfang immer sehr geholfen, musste Sie da aber per Hand machen ;) was mehr mühsam und Gefummel war, als das es das Lernen angeregt hat, es besteht gerade bei mehr-dimensionalen arrays ja doch schnell die Gefahr schlicht von der Struktur erschlagen zu werden als Anfänger, wenn man sie einfach var_dump'ed :D

So oder so: Jeder lernt anders, und jeder muss selbst wissen wie für sich am besten. Mir hatte es geholfen, warum sollte ich es also vorenthalten ?

Man muss ja nicht jeden Einsteiger durch Ablehnung von Hilfen aus der ganzen Thematik verjagen !

Du hast auch mal angefangen, genau wie ich und jeder andere auch !
08/30/2014 22:10 NotEnoughForYou#9
Alternativ könntest du auch serialisieren
08/31/2014 08:57 Else#10
Quote:
Originally Posted by NotEnoughForYou View Post
Alternativ könntest du auch serialisieren
Und dann? Sinn? Wenn Du eine Tabelle hast, für Nachrichten, kannst Du auch für jede Nachricht einen Eintrag erstellen. Das erspart Dir einiges an Zeit. Davon abgesehen. Das Speichern von optionalen Werten sollte man serialisieren, nicht jedoch einen Großteil der verwendbaren Daten.
08/31/2014 13:17 NotEnoughForYou#11
Sollte ihm ja auch nur die Möglichkeiten zeigen, die es gibt
09/04/2014 00:30 .aNNdii##12
Wenn du wirklich das(?) komplette Array abspeichern willst benutz einfach json_encode & json_decode, den String evt. noch base64 encoden und in die Datenbank abspeichern.