ilch Forum » Ilch CMS 2.X » Module und Modifikationen » Database QueryBuilder - $replace = true

Geschlossen
  1. #1
    User Pic
    madmax1337 Mitglied
    Registriert seit
    12.06.2012
    Beiträge
    10
    Beitragswertungen
    0 Beitragspunkte
    Guten Tag,

    ich baue gerade so ein giveaway system, was ich mir schonmal auf ilch 1.1 erstellen lassen hab.

    Jetzt bin ich gerade dabei das auslesen des Keys zum funktionieren zubekommen. Genauer gesagt, den ausgelesenen key zu löschen. Aber ich bekomm das nicht mit der query hin.

    Unzwar muss ich die Zeile des Keys leer machen, quasi ersetzen mit einem leeren feld bzw nichts. Denn die sind in einer Spalte in der Datenbank mit Raute # getrennt.
    Sprich: 123#1234#1235 etc.

    Meine kentnisse sind leider noch zu schwach um aus der Wiki schlau zu werden.


    Damit hab ich es zuerst versucht gehabt:

    $randomkey = $keyset->getKeys();
    $seperate = explode('#', $randomkey);
    		
    $fields = [
    'keys' => ''
    ];
    
    $this->db()->update('giveaway_keys')
        ->values($fields)
        ->where(['id' => $keyset->getId(), 'keys LIKE' => '%' . $seperate[0] . '#%'])
        ->execute();
    return $keyset->getId();


    Spricht aber nicht das richtige an, ersetzen ist glaub ich möglich wenn ich mich nicht täusche.

    Danke schonmal in vorraus.




    ------------------------------
    Edit:

    Hab es jetzt hinbekommen. Unzwar hiermit:

    $randomkey = $keyset->getKeys();
    $seperate = explode('#', $randomkey);
    $anz      = count($seperate);
    		
    if ($anz == 1) {
    $sql = 'UPDATE `[prefix]_giveaway_keys` SET `keys` = REPLACE(`keys`, "' . $seperate[0] . '", "")';
    	return $this->db()->queryMulti($sql);
    } else {
    $sql = 'UPDATE `[prefix]_giveaway_keys` SET `keys` = REPLACE(`keys`, "' . $seperate[0] . '#", "")';
    	return $this->db()->queryMulti($sql);
    }



    verwendete ilch Version: 2.1.x


    Zuletzt modifiziert von madmax1337 am 30.04.2023 - 16:44:10
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten