Ankündigung

Einklappen
Keine Ankündigung bisher.

Letzten Eintrag aus der Tabellen lesen

Einklappen

Neue Werbung 2019

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

  • Letzten Eintrag aus der Tabellen lesen

    Hallo,

    ich lese den letzten Eintrag aus 9 Tabellen.

    PHP-Code:
    require "databasedaten/db.php";
    $abfrage "SELECT * FROM makaleler_aile 
                UNION  
                SELECT * FROM makaleler_cocuk
                UNION
                SELECT * FROM makaleler_ergen 
                UNION  
                SELECT * FROM makaleler_erkek 
                UNION
                SELECT * FROM makaleler_insana_dair 
                UNION  
                SELECT * FROM makaleler_kadin 
                UNION
                SELECT * FROM makaleler_kisisel_gelisim 
                UNION  
                SELECT * FROM makaleler_meslege_dair
                UNION  
                SELECT * FROM makaleler_ruh_saligi
                ORDER BY id DESC LIMIT 9"
    ;
     
    $ergebnis mysql_query($abfrage); 
    funktioniert auch wunderbar, wenn ich statt LIMIT 0,1 die 9 reinschreibe.
    Das funktioniert auch nur dann, wenn alle 9 Tabellen die selbe Anzahl von Einträgen haben.

    Sobald eine der Tabellen ein Eintrag mehr hat, wird aus dieser Tabelle die letzten 2 Einträge mit gelesen und dann die nächsten 8 statt 9, da bei dieser Tabelle bereits die letzten 2 gelesen wurde.

    Meine Frage: wie kann ich effektiv aus allen 9 Tabellen nur den letzten Eintrag auslesen?

    Zur Info, alle Tabellen sind mit ID versehen.

    gruß
    katip


  • #2
    Du musst für jede deiner SELECT-Anweisungen ein Limit und ein Order-By setzen.

    Aber ganz ehrlich: Was treibst du da? Das sieht nach schweren DB-Design-Fehlern aus.

    Kommentar


    • #3
      Vorweg:
      Hast bestimmt hier schon irgendwo gelesen mysql_query ist nicht mehr so uptodate.

      Zu deinem Problem:
      Erstmal deine Frage an sich ist schon ein Problem. Der letzte Eintrag ist relativ. Kommt schließlich auf die Sortierung an.

      Aber der letzte aus dieser Abfrage wäre einfach die Anzahl der Zeilen zu ermitteln und dann per seek den Zeiger setzten.
      Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

      Kommentar


      • #4
        Hallo,
        Du musst für jede deiner SELECT-Anweisungen ein Limit und ein Order-By setzen.
        wo genau packe ich das?

        Kommentar


        • #5
          Du hast doch schon 9 selects und eines davon mit order by ... sollte doch kein problem sein je eins hinter die anderen 8 zu schreiben...

          Ansonsten:
          Zitat von cycap
          Aber ganz ehrlich: Was treibst du da? Das sieht nach schweren DB-Design-Fehlern aus.

          Kommentar


          • #6
            @moewe: der höchste id wäre doch mein letzter eintrag oder etwa nicht?

            Jetzt habe ich das mal so gemacht und läuft nicht
            PHP-Code:
            require "databasedaten/db.php";
            $abfrage "SELECT * FROM makaleler_aile 
            ORDER BY id DESC LIMIT 0,1
                        UNION  
                        SELECT * FROM makaleler_cocuk
                        ORDER BY id DESC LIMIT 0,1
                        UNION
                        SELECT * FROM makaleler_ergen
            ORDER BY id DESC LIMIT 0,1            
                        UNION  
                        SELECT * FROM makaleler_erkek 
                        ORDER BY id DESC LIMIT 0,1
                        UNION
                        SELECT * FROM makaleler_insana_dair
            ORDER BY id DESC LIMIT 0,1            
                        UNION  
                        SELECT * FROM makaleler_kadin 
                        ORDER BY id DESC LIMIT 0,1
                        UNION
                        SELECT * FROM makaleler_kisisel_gelisim 
                        ORDER BY id DESC LIMIT 0,1
                        UNION  
                        SELECT * FROM makaleler_meslege_dair
                        ORDER BY id DESC LIMIT 0,1
                        UNION  
                        SELECT * FROM makaleler_ruh_saligi
                        ORDER BY id DESC LIMIT 0,1"
            ;
             
            $ergebnis mysql_query($abfrage); 

            Kommentar


            • #7
              Zitat von katipefendi Beitrag anzeigen
              Hallo,


              wo genau packe ich das?
              Am besten nirgends. Hau den Klumpatsch in die Tonne.

              Falls Du lernresistent bist: lies die Doku zu SELECT. Aber ich seh grad: das widerspricht sich ja selbst.
              PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

              Kommentar


              • #8
                @akretschmer:
                ich habe mal hier durch gelesen, leider kann ich mir damit auch nicht helfen http://www.php-kurs.com/mysql-select-anweisung.htm

                Kommentar


                • #9
                  Am besten nirgends. Hau den Klumpatsch in die Tonne.
                  Ganz genau. Ansonsten funktioniert meine Lösungsvorschlag wohl nur mit Klammern um jeden Select, da mysql ansonsten sagt
                  Incorrect usage of UNION and ORDER BY

                  Kommentar


                  • #10
                    Mach es doch erstmal zum warm werden mit einem select so nach dieser methode.
                    Ist recht deckig und zusammen gewurstet.
                    Aber sowas in der Art willste doch haben oder?
                    PHP-Code:
                        $conn = new mysqli(MA_HOSTMA_USERMA_PASSWORDMA_DATABASE);
                        
                    $res $conn->query("SELECT * FROM table");
                        
                    $anzahl = ($res->num_rows)-1;
                        
                    $res->data_seek(($anzahl));
                        
                    $daten $res->fetch_assoc();
                        
                    var_dump($daten); 
                    @edit So bist du beim LIMIT flexibel. Das war unteranderem dein Wunsch, oder?
                    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                    Kommentar


                    • #11
                      @Moewe: ist das dein Ernst?

                      Kommentar


                      • #12
                        So jetzt habe ich das mal so gemacht
                        PHP-Code:
                        $abfrage "(SELECT * FROM makaleler_aile 
                        ORDER BY id DESC LIMIT 0,1)
                                    UNION  
                                    (SELECT * FROM makaleler_cocuk
                                    ORDER BY id DESC LIMIT 0,1)
                                    UNION
                                    (SELECT * FROM makaleler_ergen
                        ORDER BY id DESC LIMIT 0,1)            
                                    UNION  
                                    (SELECT * FROM makaleler_erkek 
                                    ORDER BY id DESC LIMIT 0,1)
                                    UNION
                                    (SELECT * FROM makaleler_insana_dair
                        ORDER BY id DESC LIMIT 0,1            )
                                    UNION  
                                    (SELECT * FROM makaleler_kadin 
                                    ORDER BY id DESC LIMIT 0,1)
                                    UNION
                                    (SELECT * FROM makaleler_kisisel_gelisim 
                                    ORDER BY id DESC LIMIT 0,1)
                                    UNION  
                                    (SELECT * FROM makaleler_meslege_dair
                                    ORDER BY id DESC LIMIT 0,1)
                                    UNION  
                                    (SELECT * FROM makaleler_ruh_saligi
                                    ORDER BY id DESC LIMIT 0,1)"

                        und ich bin wieder da, wo ich am Anfang war..
                        Es verhält sich wieder als habe ich an dem Code wie zuvor nichts verändert.

                        Kommentar


                        • #13
                          Zitat von cycap Beitrag anzeigen
                          @Moewe: ist das dein Ernst?
                          Mein ernst ist das nicht. Das ist von hinten durchs Knie ins Auge und nicht Deckungsgleich mit Lösungswunsch. Aber um erstmal damit rum zuspielen.

                          Oder was meinst du
                          Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                          Kommentar


                          • #14
                            @katipefendi: Die Abfrage liefert imner 0 oder 1 Datensatz pro Tabelle und davon immer den letzten (autoincrement vorrausgesetzt). Wenn das nicht das ist was du wolltest, dann reden wir aneinander vorbei.

                            @Moewe: Ich hab mich erschrocken weil ich sowas noch nicht gesehen habe, aber das trifft auf den ganzen Thread zu

                            Kommentar


                            • #15
                              Ach wenn es danach geht

                              Code den man deutlich anders schreiben sollte findeste fast überall

                              Ich hab bei diesem Thread auch noch nicht ganz den Sinn dahinter verstanden.
                              Bei Union läuft mir sowieso immer n schauer über den Rücken. Ich mag das ding nicht
                              Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                              Kommentar

                              Lädt...
                              X