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

  • katipefendi
    hat ein Thema erstellt Letzten Eintrag aus der Tabellen lesen.

    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

  • Moewe
    antwortet
    Zitat von cycap Beitrag anzeigen
    Das geht mir bei deinem Code nicht anders
    Ich hab ja extra geschrieben dreckiger hingewurster code

    Einen Kommentar schreiben:


  • katipefendi
    antwortet
    @cycap:

    es ist kein unterschied zu sehen am Funktion

    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); 
    ist gleich dieser vom verhalten
    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)"

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Das geht mir bei deinem Code nicht anders

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    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

    Einen Kommentar schreiben:


  • cycap
    antwortet
    @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

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    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

    Einen Kommentar schreiben:


  • katipefendi
    antwortet
    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.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    @Moewe: ist das dein Ernst?

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    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?

    Einen Kommentar schreiben:


  • cycap
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • akretschmer
    antwortet
    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.

    Einen Kommentar schreiben:


  • katipefendi
    antwortet
    @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); 

    Einen Kommentar schreiben:


  • der_robert
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X