• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] String aus Datanbank projizieren

Herakles

Neues Mitglied
Hallo html-community,
ich habe auf einer Webseite mit query Daten in eine Tabelle projiziert. In der Tabelle sind mehrere Parameter. Ich benötige lediglich den Inhalt von "receiver". Ausgabe von receiver:
Code:
["steam:CONTENT","license:CONTENT","discord:CONTENT","ip:CONTENT"]
Gibt es eine Möglichkeit lediglich die steamID auszugeben? Unglücklicherweise kommt es auch vor, dass diese nicht an erster Stelle steht.

Ich danke im Voraus für eure Hilfe.

371fe823df363a3a30bcd8b18c8dc7d7.png
 
Werbung:
Code:
$str = '["steam:CONTENT","license:CONTENT","discord:CONTENT","ip:CONTENT"]';

$items = json_decode($str);

foreach($items as $item) {
    $parts = explode(':', $item);
    if ($parts[0] === 'steam') {
        var_dump($parts[1]);
    }
}

Ich würde mich aber hüten Daten so abzuspeichern. Das ist relativ sinnfrei.
 
Hallo jonas3344,
danke für deine schnelle Antwort. Das Problem ist, dass die Daten von einem Script so abgelegt werden und ich diese lediglich auf eine Webseite projizieren möchte und weitere "Einstellungen" hinzufügen will. Die Datenbank sieht wie folgt aus: [Content steht für die IP eines Users, diese sind selbstverständlich für jeden unterschiedlich.]

Daenbank.png
 
Werbung:
Ich habe das script etwas umgeschrieben, damit es auch zu dem passt, was ich erreichen möchte. Das Problem am script ist, dass $item in der if-Abrafe aus irgend einem Grund nicht anerkannt wird. ersetzte ich diese Variable durch test funktionmiert es, wie ich es erhoffe.

PHP:
function GetSteamIDFromDBList($DBContent){
    $str = $DBContent;
    $items = json_decode($str);

    foreach($items as $item){
        //$test = "Hello guys steam";
        $Word = "steam";
        $CheckString = strpos($item, $Word);
        if($CheckString){
            return $item;
        }else{
            return "SteamID nicht verfügbar";
        }
    }
}
 
Werbung:
Den Grund könntest du einfach herausfinden.

Z.b. machst du ein
Code:
var_dump($checkString);
und schaust was herauskommt.

Oder du schaust einfach ins Handbuch und guckst nach was denn die Funktion strpos() so zurückgibt:

 
Welchen Sinn soll
PHP:
$str = $DBContent;
haben?
Warum in einer Schleife
PHP:
$Word = "steam";
Das gesuchte Word würde ich auch eher als Parameter der Funktion übergeben

PHP:
$CheckString = strpos($item, $Word);
if($CheckString){
Das ist falsch! strpos gibt 0 zurück, wenn der String am Anfang gefunden wurde und somit scheitert dein
PHP:
if($CheckString){
Richtig ist
PHP:
if($CheckString !== false){
 
Hallo,
folgendes ist eine Art überbleibsel von einem anderen code, danke für den Hinweiß, dass macht wirklich keinen Sinn:
PHP:
PHP:

$str = $DBContent;
Vielen Danke für eure Hilfe. Nun funktioniert alles so, wie ich es mir erhofft hatte.
 
Werbung:
Zurück
Oben