Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
update statement
#1
Hallo,

folgende Statement bereiten mir Kopfzerbrechen

PHP-Code:
        if($mybb->input['old_cid']!=$mybb->input['cid']){
        
$db->update_query(TABLE_PREFIX 'linkscategories', array('links'=>links-1), "cid='$act_cid'");
        
$db->update_query(TABLE_PREFIX 'linkscategories', array('links'=>links+1), "cid='$cid'"); 

sollen jeweis Feld links um einen erhöhen bzw reduzieren.

Verwendet myBB Active Record Patterns?
Gruß
Mad4Milk
Freizeitspass mit Volleyball
#2
O.K.

ein Blick in die DB-Engine offenbart des Rätsels Lösung:

PHP-Code:
    function update_query($table$array$where=""$limit="")
    {
        if(!
is_array($array))
        {
            return 
false;
        }
        
$comma "";
        
$query "";
        foreach(
$array as $field => $value)
        {
            
$query .= $comma.$field."='".$value."'";
            
$comma ", ";
        }
        if(!empty(
$where))
        {
            
$query .= " WHERE $where";
        }
        if(!empty(
$limit))
        {
            
$query .= " LIMIT $limit";
        }
        return 
$this->query("UPDATE $table SET $query");
    } 
die Values werden gequotet:question:
muss dann wohl so aussehen:
PHP-Code:
$db->query("UPDATE `".TABLE_PREFIX."linkscategories` SET links=links+1 WHERE cid='$cid'"); 

Aber ich lasse mich gerne eines besseren belehren
Gruß
Mad4Milk
Freizeitspass mit Volleyball
#3
Genau das wird ausgeführt. Bei größeren Arrays macht die Funktion aber mehr Sinn.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#4
O.K.

und mit Active Record Patterns hat das natürlich auch nichts zu tun
Gruß
Mad4Milk
Freizeitspass mit Volleyball