Seite 1 von 1

Löschen + Update in Tabellen

Verfasst: 16.11.2014 14:48
von Walter91
Ich suche Hilfe bei folgenden Problem:
Ich möchte einen Datensatz aus der Tabelle MUSIK löschen, gleichzeitig soll in Tabelle CD ein Wert niedriger eingetragen werden.
Das Update des Zahlenwertes in Tabelle CD funktioniert einwandfrei. Der Datensatz in Tabelle MUSIK wird jedoch nicht gelöscht.

So rufe ich das auf.

Code: Alles auswählen

'U_DELETE' => ( $auth->acl_get('m_delete') || $auth->acl_get('a_') || ( $auth->acl_get('u_delete_own') && $user->data['user_id'] == $row['author_id'] ) ) ? append_sid ("{$phpbb_root_path}test.{$phpEx}", 'action=delete&musik_id='.$row['musik_id'].'&id='.$row['id'] ) : false,
Der Aufruflink zu den ID-Nummern wird richtig angezeigt.
http://localhost/phpbb/test.php?action=delete&id=14&id=4

So habe ich die Löschfunktion.

Code: Alles auswählen

case 'delete':
if ( !$auth->acl_get('u_delete_own') )
    {
      ($auth->acl_get('a_')) ? trigger_error('ADMIN_PERM_READ') : trigger_error('PERM_DELETE');
    }
    if (confirm_box(true))
    {
        
        $sql = 'DELETE FROM ' . MUSIK_TABLE . '
            WHERE musik_id = ' . (int) $id;
        $db->sql_query($sql);
        $cache->destroy('sql', MUSIK_TABLE);    
        
        
        $sql = 'UPDATE ' . CD_TABLE . '
                SET interpret = interpret -1
                WHERE id = ' . $id;
        $db->sql_query($sql);
        
        }
        else
        {    
         confirm_box(false, $user->lang['DATEN_DEL']);
        }

break; 
Kann hier jemand helfen wo der Fehler liegt? Danke.

Re: Löschen + Update in Tabellen

Verfasst: 16.11.2014 19:20
von HabNurNeFrage
Hi,

wie unterscheidet das SQL zwischen (int) $id und $id?
Müsste bei (int) $id nicht sowas wie $music_id stehen? (oder wie immer Du diese Variable vorher definiert hast)

In der URL erscheint auch zweimal &id=, wobei Deine Definition für 'U_DELETE' dort einmal &music_id= schmeißen müsste.

LG

Re: Löschen + Update in Tabellen

Verfasst: 16.11.2014 22:42
von Walter91
Vielen Dank für die Hilfe. Das hat mir geholfen wie ich den Fehler finden konnte.
WHERE musik_id = ' . (int) $id; bei löschen hatte ich falsch.

Richtig geht es jetzt so WHERE musik_id = ' . $musik_id;

Der Eintrag wird jetzt gelöscht und Update Zähler geht jetzt auch.