kostenloser Webspace werbefrei: lima-city


Knobelei für MySQL Experten

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bladehunter

    Kostenloser Webspace von bladehunter

    bladehunter hat kostenlosen Webspace.

    Ich schreibe gerade an einem Script, das mit einer Art Wiki verglichen werden kann.
    Es soll jedoch eine Zugangsregelung geben, damit nur explizit authorisierte User auf die einzelnen Datens?tze Zugriff haben.
    Ich verwende dazu einen dynamischen MySQL-query, der sich nach bestimmten Kritierien zusammensetzt:

    if(isset($_POST['tid']))$tid=$_POST['tid'];else $tid=1; //liest $tid aus, das f?r die Tabellenwahl wichtig ist

    switch($tid)//$tid gibt an, aus welcher Tabelle die Infos geholt werden
    {
    case 1:$table='cats';break;
    case 2:$table='books';break;
    case 3:$table='chapters';break;
    case 4:$table='sub';break;
    case 5:$table='users';break;
    default:$table='cats';break;
    }

    $sql=''; //initialisieren des Query-string

    if(isset($_POST['eid']))$eid=$_POST['eid'];else $eid=0; //belegen des element-id's, das dann auf die Spalte "id" in der aktuellen Tabelle zugreifen soll.

    if($tid!=5)$sql=$sql.' AND '.$table.'.id=permis.user'; //hier ist mein Problem, Erl?uterung unten

    if($eid==0)$sql=' 1=1'.''.$sql;//wenn kein spezieller Datensatz ausgew?hlt werden soll
    else $sql=' '.$table.'.id='.$eid.''.$sql; //wenn ein spezieller Datensatz per "id" ausgew?hlt werden soll

    $sql=$table.'.* WHERE'.$sql;

    $sql='SELECT permis.* '.$sql;

    Ich verwende 5 verschiedene Tabellen + eine Erlaubnistabelle.
    Alle 5 ersten Tabellen haben eine id-Spalte und so k?nnen die Datens?tze auch angesprochen werden.

    Die Erlaubnistabelle hat folgende Struktur :
    id INT AUTO_INCREMENT PRIMARY KEY
    user INT
    tid INT
    eid INT

    mit "user" wird festgelegt, welcher User die Erlaubnis hat den Datensatz anzuzeigen.
    mit "tid" aus welcher Tabelle[cats,books,chapters,sub] ("users" ist nicht wichtig)
    und "eid" welcher Datensatz mit der id="eid" ausgelesen werden darf.

    Ich hoffe ich habe es soweit gut verst?ndlich erkl?rt.

    Mein Problem ist jetzt, ich wei? nicht wie ich den Query formulieren muss, damit er bei jedem gefundenem Datensatz in der Tabelle[$tid] ?berpr?ft, ob ein entsprechender Datensatz in der Tabelle "permis" existiert.
    Wenn er existiert, darf der Datensatz ausgelesen werden, wenn nicht, dann darf er nicht ausgelesen werden.
    Eine Ausnahme bildet die 5. Tabelle "users" dort d?rfen grunds?tzlich alle Datens?tze ausgelesen werden.

    ps. im Quelltext wird der Query r?ckw?rts aufgebaut. Ist in diesem Fall einfach praktischer.

    Danke f?r alle, die sich die M?he machen sich mit dem Problem zu befassen, ich bin mit meinem kleinen MySQL-Latein leider am Ende.

    mfg, bladehunter

    Beitrag ge?ndert am 10.08.2005 13:38 von bladehunter
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich habe mal ein wenig gegoogelt:
    Man kann aus zwei Tabellen gleichzeitig abfragen:

    SELECT Spalte1, Spalte2 FROM Tab1, Tab2

    Als ich den String ausprobiert habe, war Spalte 1 in Tab1 und Spalte2 in Tab2.

    Man m?sste da eigentlich auch allerlei "Where"-Bedingungen einbauen k?nnen.

    MfG lagerhaus
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!