[PHP&MYSQL]PHP Löscht zu viel

pchero

Ensign
Registriert
Juni 2006
Beiträge
170
Hi

ich habe ein Problem bei meinem Skript und zwar muss eine von meinen 3 Löschmöglichkeiten zu viel löschen und zwar was von BenutzerID's die er eigentlich net löschen/darf/soll bzw nicht können sollte und nur Error ausgeben sollte!

PHP:
    /**
     * Löschen von einem Test
     */
    elseif ($_REQUEST['ac2'] == "del_test" && isset($_REQUEST['testid']))
    {
        if (isset($_REQUEST['submit']))
        {
            if ($_REQUEST['testid'] != "")
            {
                $mysql_check_query = mysql_query("SELECT t1.id AS id FROM fragebogen t1, fragebogen_kategorien t2 WHERE t1.user_id='" .
                    $_SESSION['user_id'] . "' AND t2.user_id='" . $_SESSION['user_id'] .
                    "' AND t1.id='" . $_REQUEST['testid'] . "' ;");
                $mysql_check_array = mysql_fetch_array($mysql_check_query);
                if (isset($mysql_check_array['id']))
                {

                    $mysql_query = mysql_query("DELETE FROM t3 USING fragebogen AS t1, fragebogen_kategorien AS t2, fragebogen_fragen AS t3 WHERE t1.id='" .
                        $_REQUEST['testid'] . "' AND t1.user_id='" . $_SESSION['user_id'] .
                        "' AND t1.id=t2.test_id AND t2.id=t3.kategorie_id  AND t3.user_id='" . $_SESSION['user_id'] .
                        "';");
                    $mysql_query = mysql_query("DELETE FROM t1, t2 USING fragebogen AS t1, fragebogen_kategorien AS t2 WHERE t1.id='" .
                        $_REQUEST['testid'] . "' AND t1.user_id='" . $_SESSION['user_id'] . "';");
                    if (!$mysql_query)
                    {
                        $smarty->assign('mysql_error', mysql_error());
                        $smarty->assign('mysql_errno', mysql_errno());
                        $smarty->assign('main', 'mysql_error');
                    }
                    else
                    {
                        $smarty->assign('main', 'fragebogen_test_del_erfolgreich');
                    }
                }
                else
                {
                    $smarty->assign('main', 'fragebogen_test_del_error_2');
                }
            }
            else
            {
                $smarty->assign('main', 'fragebogen_test_del_error');
            }
        }
        else
        {
            $smarty->assign('main', 'fragebogen_test_del');
        }
    }
    /**
     * Löschen von einer Kategorie
     */
    elseif ($_REQUEST['ac2'] == "del_kat" && isset($_REQUEST['katid']))
    {
        if (isset($_REQUEST['submit']))
        {
            if ($_REQUEST['katid'] != "")
            {
                $mysql_check_query = mysql_query("SELECT t2.id AS id FROM fragebogen t1, fragebogen_kategorien t2 WHERE t1.user_id='" .
                    $_SESSION['user_id'] . "' AND t2.user_id='" . $_SESSION['user_id'] .
                    "' AND t1.id='" . $_SESSION['testid'] . "' AND t2.id='" . $_REQUEST['katid'] .
                    "' AND t2.loeschen!='0'");
                $mysql_check_array = mysql_fetch_array($mysql_check_query);
                if (isset($mysql_check_array['id']))
                {

                    $mysql_query = mysql_query("DELETE FROM t2,t3 USING fragebogen_kategorien AS t2, fragebogen_fragen AS t3 WHERE t2.id='" .
                        $_REQUEST['katid'] . "' AND t2.user_id='" . $_SESSION['user_id'] .
                        "' AND t2.id=t3.kategorie_id  AND t3.user_id='" . $_SESSION['user_id'] .
                        "' AND t3.loeschen!='0';");
                    $mysql_query = mysql_query("DELETE FROM t2 USING fragebogen_kategorien AS t2 WHERE t2.id='" .
                        $_REQUEST['katid'] . "' AND t2.user_id='" . $_SESSION['user_id'] . "';");
                    if (!$mysql_query)
                    {
                        $smarty->assign('mysql_error', mysql_error());
                        $smarty->assign('mysql_errno', mysql_errno());
                        $smarty->assign('main', 'mysql_error');
                    }
                    else
                    {
                        renew_rang_kategorien($_SESSION['testid']);
                        header("Location: index.php?ac=fragebogen&ac2=view");
                    }
                }
                else
                {
                    $smarty->assign('main', 'fragebogen_kategorien_del_error_2');
                }
            }
            else
            {
                $smarty->assign('main', 'fragebogen_kategorien_del_error');
            }
        }
        else
        {
            $smarty->assign('main', 'fragebogen_kategorien_del');
        }
    }
    /**
     * Löschen von einer Frage
     */
    elseif ($_REQUEST['ac2'] == "del_frage" && isset($_REQUEST['frageid']))
    {
        if (isset($_REQUEST['submit']))
        {
            if ($_REQUEST['frageid'] != "")
            {
                $mysql_check_query = mysql_query("SELECT t3.id AS id, t3.kategorie_id AS kat_id FROM fragebogen t1, fragebogen_kategorien t2, fragebogen_fragen t3 WHERE t3.id='" .
                    $_REQUEST['frageid'] . "' AND t3.loeschen!='0'");
                $mysql_check_array = mysql_fetch_array($mysql_check_query);
                if (isset($mysql_check_array['id']))
                {

                    $mysql_query = mysql_query("DELETE FROM t3 USING fragebogen_kategorien AS t2, fragebogen_fragen AS t3 WHERE t3.id='" .
                        $_REQUEST['frageid'] . "'  AND t3.user_id='" . $_SESSION['user_id'] .
                        "' AND t3.loeschen!='0';");
                    if (!$mysql_query)
                    {
                        $smarty->assign('mysql_error', mysql_error());
                        $smarty->assign('mysql_errno', mysql_errno());
                        $smarty->assign('main', 'mysql_error');
                    }
                    else
                    {
                        renew_rang_fragen($mysql_check_array['kat_id']);
                        header("Location: index.php?ac=fragebogen&ac2=view");
                    }
                }
                else
                {
                    $smarty->assign('main', 'fragebogen_fragen_del_error_2');
                }
            }
            else
            {
                $smarty->assign('main', 'fragebogen_fragen_del_error');
            }
        }
        else
        {
            $smarty->assign('main', 'fragebogen_fragen_del');
        }
    }


Ich meine das der Fehler bei dem Löschen von einem Test/Fragebogen passiert bloß bin mir nicht 100% sicher! Und mit dem Verknüpfen der 3 Tabellen wäre ich auch dankbar falls ihr etwas findet wie man das besser lösen kann! Weil ich hatte mal das Problem wenn die Verknüpfung ins leere geführt hat, hat er das dann nicht gelöscht ? Und bei der Lösung mit einer Schleife würden ziemlich viele Abfragen werden.

Ich hoffe ich habe mich klar ausgedrückt:rolleyes:

MFG
 
Zuletzt bearbeitet:
Zurück
Oben