Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Query nur lesen bei Bedingung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Query nur lesen bei Bedingung

    Blöder Titel. Ich weiß.

    Um folgendes geht es:

    Ich habe Tabelleneinträge, die nur angezeigt werden wenn bestimmte Bedingungen erfüllt werden.

    Eine davon ist z.B. die, dass die Results nur dann eingelesen werden, wenn es sich z.B. um eine bestimmte Benutzergruppe handelt.

    Andernfalls soll nichts ausgegeben werden.

    Also müsste ich zB. etwas in der Art haben:
    PHP-Code:
    function checkokay(){
       return 
    1;
    }
    $query=" select * from mytable where allow=4 and ".checkokay()." >0"
    Saumäßig blöd erklärt ich weiß. Checkokay prüft in einer anderen Tabelle ob der User Zugriff auf den entsprechenden Inhalt haben soll.

    Allerdings kann ich leider nicht vor der Query Abfrage prüfen und dann entsprechend den Query ausführen oder nicht. Da es in der Tabelle Einträge gibt, die manche lesen können, manche eben nicht.

    Geht das vieleicht mit joinen? Bzw. wenn ja, kann mir da jemand einen kurzen Anstoß geben?

    Danke

    EDIT:
    Ich hoffe, dass ich einfach nur doof bin.
    Denn theoretisch müsste es doch so gehen:
    PHP-Code:
    function checkokay(){
       return 
    1;
    }
    $query=" select *,".checkokay()." as okay from mytable where allow=4 and okay >0"
    Kanns gerade leider nicht testen. Also wenn jemand schneller ist

    Nochmal EDIT:

    Hat sich erledigt. Ich bin doof.
    PHP-Code:
    function checkokay(){
       return 
    1;
    }
    $query=" select *  from mytable where allow=4 and ".checkokay()." =1"
    Wunderbar


  • #2
    PHP-Kenntnisse: Fortgeschritten? Im "Fortgeschittenen Forum"?
    Standards - Best Practices - AwesomePHP - Guideline für WebApps

    Kommentar


    • #3
      Zitat von Labrar Beitrag anzeigen
      Blöder Titel. Ich weiß.

      Um folgendes geht es:

      Ich habe Tabelleneinträge, die nur angezeigt werden wenn bestimmte Bedingungen erfüllt werden.

      Eine davon ist z.B. die, dass die Results nur dann eingelesen werden, wenn es sich z.B. um eine bestimmte Benutzergruppe handelt.

      Andernfalls soll nichts ausgegeben werden.

      Also müsste ich zB. etwas in der Art haben:
      PHP-Code:
      function checkokay(){
         return 
      1;
      }
      $query=" select * from mytable where allow=4 and ".checkokay()." >0"
      Saumäßig blöd erklärt ich weiß. Checkokay prüft in einer anderen Tabelle ob der User Zugriff auf den entsprechenden Inhalt haben soll.

      Allerdings kann ich leider nicht vor der Query Abfrage prüfen und dann entsprechend den Query ausführen oder nicht. Da es in der Tabelle Einträge gibt, die manche lesen können, manche eben nicht.

      Geht das vieleicht mit joinen? Bzw. wenn ja, kann mir da jemand einen kurzen Anstoß geben?

      Danke

      EDIT:
      Ich hoffe, dass ich einfach nur doof bin.
      Denn theoretisch müsste es doch so gehen:
      PHP-Code:
      function checkokay(){
         return 
      1;
      }
      $query=" select *,".checkokay()." as okay from mytable where allow=4 and okay >0"
      Kanns gerade leider nicht testen. Also wenn jemand schneller ist

      Nochmal EDIT:

      Hat sich erledigt. Ich bin doof.
      PHP-Code:
      function checkokay(){
         return 
      1;
      }
      $query=" select *  from mytable where allow=4 and ".checkokay()." =1"
      Wunderbar
      Zitat von rkr Beitrag anzeigen
      PHP-Kenntnisse: Fortgeschritten? Im "Fortgeschittenen Forum"?
      Das und... wtf, hast du schonmal was von if gehört in offenbar mindestens 5 Jahren PHP-Kenntnissen?
      Crashkurs zum Thema Rechtschreibung: normalerweise (normaler weise oder normaler weiße), Standard (Standart), eben (ebend)

      Kommentar


      • #4
        Zitat von Labrar Beitrag anzeigen
        Allerdings kann ich leider nicht vor der Query Abfrage prüfen und dann entsprechend den Query ausführen oder nicht. Da es in der Tabelle Einträge gibt, die manche lesen können, manche eben nicht.
        Vermute hier den Versuch einer Erklärung, warum kein if benutzt wird.
        Aussage und Begründung sind für mich unverständlich.
        PHP-Klassen auf github

        Kommentar


        • #5
          Das Thema hat sich ja auch schon geklärt. War tatsächlich doof erklärt.

          If im Vorfeld wollte ich nicht, da es doch Quatsch ist. So wie beschrieben geht es genauso in einer einzigen Abfrage ohne if.

          Ich traue mich kaum noch eine Frage im "Fortgeschrittenen Forum" zu stellen, da es hier scheinbar nur Progger gibt, die ein "Superalleswisser, ich hab PHP und SQL erfunden Forum benötigen".

          Kommentar


          • #6
            Hallöchen,

            Zitat von Labrar Beitrag anzeigen
            Hat sich erledigt. Ich bin doof.
            PHP-Code:
            function checkokay(){
               return 
            1;
            }
            $query=" select *  from mytable where allow=4 and ".checkokay()." =1"
            Wunderbar
            Wenn da am Ende eine WHERE-Klausel wie 0 = 1 rauskommt, kannst du dir das Query auch sparen.

            Zitat von Labrar Beitrag anzeigen
            Ich traue mich kaum noch eine Frage im "Fortgeschrittenen Forum" zu stellen, da es hier scheinbar nur Progger gibt, die ein "Superalleswisser, ich hab PHP und SQL erfunden Forum benötigen".
            Das Fortgeschrittenen-Forum ist in erster Linie nicht für (selbsternannte) fortgeschrittene Benutzer da, sondern um fortgeschrittene Themen zu behandeln und zu diskutieren. D.h. im Umkehrschluss, dass auch die forgeschrittene Benutzer die simplen Themen im Anfänger-Forum posten.

            Viele Grüße,
            lotti

            Kommentar


            • #7
              Zitat von lottikarotti Beitrag anzeigen

              Wenn da am Ende eine WHERE-Klausel wie 0 = 1 rauskommt, kannst du dir das Query auch sparen.
              Ne. War blöd erklärt. Es gibt Einträge, die nur angezeigt werden sollen wenn der User entsprechende Bedingungen erfüllt. (ZB befreundet ist mit dem Eintragsersteller). Das heißt es kommen immer Einträge raus. Ist nicht so, dass so dermaßen gefiltert wird, dass es in manchen Fällen gar nix ausgeben kann. Denn dann könnte ich mir den Query tatsächlich sparen.

              Kommentar


              • #8
                Ich würde nie auf die Idee kommen bei Bedingungen, die nicht von den Tabelleninhalten abhängen, diese unbedingt mit in eine Query pressen zu wollen. Entsprechend User/Bedingungen die entsprechende passende Query erstellen und gut ist. Dürfte die Datenbank auch etwas entlasten.
                PHP-Klassen auf github

                Kommentar


                • #9
                  Wie gesagt.Thema ist erledigt und es geht so alles wunderbar und fix

                  Kommentar


                  • #10
                    Ich halte deine Lösung auch für bescheuert. Nach dem Motto: "Wieso einfach, wenns kompliziert & umständlich geht?"
                    Neu bei PHP, lerne aktuell OOP

                    Kommentar


                    • #11
                      Verstehe ich nicht ganz. Einfacher geht es doch nicht. Die Funktion brauche ich doch sowieso. Jetzt hat der Query eine Zeile. Wie solls noch einfacher gehen?

                      Kommentar


                      • #12
                        In dem man Zugriffsschicht und Datenhandling modular aufbaut und sauber voneinander trennt. Deine Rechteverwaltung ist so unflexibel.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar

                        Lädt...
                        X