[geloest] if Abfrage brauche Hilfe

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

[geloest] if Abfrage brauche Hilfe

Beitrag von TLoD »

Hallo Gemeinde,

ich sitze nun schon seit ein paar Wochen über einer if Abfrage und bekomme diese einfach nicht auf die Reihe. Habe auch schon einige Tuts gelesen aber ich glaub ich stell mich einfach nur doof an...

Und zwar habe ich eine Tabelle erstellt, in der User etwas schreiben können.
Jetzt wollte ich das nur Admins oder der jeweilige Autor seinen Eintrag löschen kann. Die Abfrage für Admins funktioniert auch nur bekomme ich es nicht hin, das der Autor NUR seinen Eintrag löschen kann. Entweder er kann alle löschen oder keinen aber nur seinen bekomm ich nicht in den Griff.

Ein Post hat folgende Informationen in der DB:

ID; Autor; Autor_ID; Datum; Text

Code: Alles auswählen

// Zeige nur den Löschbutton für Admins und Autoren
                if (($adminbereich) OR (isAutor() == $row['Autor'])) {
                        echo "<form action=\"scanliste.php?section=kolos&action=deletekolos\" method=\"post\" class=\"formular\">\n";
                        echo "<td align=\"center\">\n";
                        echo "<input type=\"submit\" name=\"kolo_loeschen\" value=\"l&ouml;schen\" />\n";
                        echo "<input type=\"hidden\" name=\"kolo_id\" value=\"".$ids[$i]."\" />\n";
                        echo "</td></tr></form>\n";
                } else {
für isAutor() habe ich folgendes in der funktions.php hinterlegt:

Code: Alles auswählen

        function isAutor()
        {
        $sql = "SELECT
                                Autor
                        FROM
                                ".KOLOS."
                        WHERE
                                ID = '".$_SESSION['ID']."';";
        $result = mysql_query($sql) OR die(mysql_error());
        $row = mysql_fetch_assoc($result);
        mysql_free_result($result);
        return $row['Autor'];
        }
Ich hoffe es kann mir jemand helfen.
Ich denke mein Problem liegt daran, das ich nur überprüfe ob der user ein Autor in der Table ist, aber ich müsste wohl das ganze auf den jeweiligen Beitrag somit auf die ID eines Beitrags beziehen und dafür fehlt mir einfach das Wissen.
Zuletzt geändert von TLoD am 08.07.2008 22:38, insgesamt 1-mal geändert.
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von TLoD »

Ich glaub so ists verständlicher :D

[ externes Bild ]

was muss ich nun anstellen, damit nur der user z.B. fritz den Löschbutton für seine beiträge angezeigt bekommt?

mal in worten erklärt, müsste die abfrage ja in etwa so sein:

wenn für die ID xy der USERNAME == AUTOR ist -> Löschbutton

ich bekomme aber immer nur die abfrage hin:

wenn USERNAME == AUTOR -> Löschbutton

was zur folge hat das der user in meinem fall fritz alle beiträge löschen kann anstatt nur seine.

ich hoffe ich habe nun ein wenig licht ins dunkle gebracht ;)
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Benutzeravatar
TLoD
Mitglied
Beiträge: 161
Registriert: 04.08.2007 14:57
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von TLoD »

Problem gelöst!

Ich habe einfach folgendes eingefügt:

Code: Alles auswählen

if (($adminbereich) OR (getUserID() == $autorid[$i])) {
und hinter getUserID verbirgt sich folgende Abfrage:

Code: Alles auswählen

// gibt die User ID der Session ID zurück
        function getUserID()
        {
                 $sql = "SELECT
                                       ID
                                FROM
                                       ".SPIELER."
                                WHERE
                                       ID = '".$_SESSION['ID']."';";
                $result = mysql_query($sql) OR die(mysql_error());
        $row = mysql_fetch_assoc($result);
        return $row['ID'];
        }
Wenn man erstmal seinen Fehler findet, ists ja ganz easy ;)
LG Marc

Wir leben alle unter dem gleichen Himmel, aber wir haben nicht alle den gleichen Horizont.
Antworten

Zurück zu „Coding & Technik“