Das Deinialisieren mehrerer Spaltenwerte, die in einer database-Ergebnisvariablen gespeichert sind

In letzter Zeit habe ich eine benutzerdefinierte Vorlage erstellt, um nach Daten in einer database zu suchen und diese auch mithilfe von Kontrollkästchen anzuzeigen. So kann ein Benutzer mehrere Kontrollkästchen auswählen, um Daten zu suchen, und die Abfrage sucht nach den ausgewählten Kontrollkästchenwerten.

Das alles funktioniert und die abgefragten Daten werden in einer Variablen namens $ tmp zurückgegeben. Obwohl einige der abgefragten Daten serialisierte Daten sind (hochgeladen mit (ja, auch) Checkboxen), sind einige Daten nur normale Strings (Daten, die zum Beispiel mit Radiobuttons hochgeladen werden). Eine abgefragte Zeile kann also sowohl serialisierte als auch unserialisierte Daten enthalten.

Um alle Daten jeder Spalte in einer Tabelle anzuzeigen, habe ich ein if(count($tmp)) und eine foreach für jedes Datenelement in den Spalten verwendet. Wie bereits erwähnt, habe ich einige serialisierte Daten, die jetzt angezeigt werden, und natürlich brauche ich nur die Zeichenfolge dieser serialisierten Daten. Ich habe etwas über das Deserialisieren von Daten gelesen und ein paar Dinge versucht (eines davon ist im Code unten gezeigt), aber ich kann es nicht zum Laufen bringen. Ich habe nicht wirklich viel Wissen über den Serialisierungs- / Deinserialisierungscode .

Die Frage ist also, wie kann ich die Daten, die abgefragt werden, entserialisieren, und sollte ich eine if-statement machen, die nur das serialisierte Datum auswählt und die normalen Zeichenketten alleine lässt? (oder vielleicht ist das egal, weil die normalen Strings mit der UNSialize-function sowieso nicht unsialisiert werden?)

Der Abfragecode lautet wie folgt:

 $tmp = $wpdb->get_results(" SELECT name_of_living_lab, location_of_living_lab, type_of_living_lab, theme_of_living_lab, stage_of_living_lab, living_lab_document FROM wp_participants_database WHERE location_of_living_lab REGEXP ('$criteria_location') AND theme_of_living_lab REGEXP ('$criteria_theme') ORDER BY name_of_living_lab ASC "); 

Ich habe übrigens den REGEXP benutzt, um die Zeichenfolge in den serialisierten Daten auszuwählen.

Der PHP-Code, der die abgefragten Daten anzeigt:

 if(count($tmp)>0){ for($i=0;$i<count($tmp);$i++){ echo ""; foreach($tmp[$i] as $key=>$value){ echo "" . $value . ""; } echo ""; } } 

Der PHP-Code, mit dem ich versucht habe, die Daten zu deserialisieren:

 if(count($tmp)>0){ for($i=0;$i<count($tmp);$i++){ echo ""; foreach($tmp[$i] as $key=>$value){ $mydata = unserialize($value); echo "" . $mydata . ""; } echo ""; } } 

Der obige Code funktioniert nicht. Dies gibt leere Werte für die normalen Strings in der database und das Wort ‘Array‘ für die serialisierten Array-Werte zurück.

* PS muss ich die unserialize-function in meiner benutzerdefinierten Vorlage aufrufen, um sie zu verwenden? Und wie soll ich das machen?

Vielen Dank im Voraus!

Solutions Collecting From Web of "Das Deinialisieren mehrerer Spaltenwerte, die in einer database-Ergebnisvariablen gespeichert sind"