MyBB.de Forum
update statement - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.2.x und älter (https://www.mybb.de/forum/forum-27.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-36.html)
+---- Thema: update statement (/thread-6624.html)



update statement - Mad4Milk - 30.07.2007

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?


RE: update statement - Mad4Milk - 30.07.2007

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


RE: update statement - StefanT - 30.07.2007

Genau das wird ausgeführt. Bei größeren Arrays macht die Funktion aber mehr Sinn.


RE: update statement - Mad4Milk - 30.07.2007

O.K.

und mit Active Record Patterns hat das natürlich auch nichts zu tun