Problem mit einer PHP/Mysql Abfrage

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

  • Problem mit einer PHP/Mysql Abfrage

    Hallo zusammen, ich bin Neu hier und hab auch schon mein erstes Problem.

    Bin jetzt seit knapp 1er Woche am überlegen und Googeln allerdings ohne was passendes zu finden.

    Vielleicht hat ja hier jemand Ahnung und kann meinen Bangen ein Ende setzen.

    Und zwar habe ich folgende Abfrage eines Scripts hierbei handelt es sich um ein Nachrichten Script, der folgende Datensatz frägt aus meiner MYSQL Tabelle die aktuellen Nachrichten ab.

    PHP-Code:
    $req1 mysql_query('select m1.id, m1.title, m1.message, m1.timestamp, count(m2.id) 
    as reps, users.id as userid, users.user_name from nachrichten as m1, nachrichten 
    as m2,users where ((m1.user1="'
    .$_SESSION['user_id'].'" and m1.user1read="no" 
    and users.id=m1.user2) or (m1.user2="'
    .$_SESSION['user_id'].'" and m1.user2read="no" 
    and users.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc'
    ); 
    Meine MYSQL Tabelle sieht so aus:

    id id2 title user1 user2 message timestamp user1read user2read


    Nun zu meinem Problem, die Nachrichten werden untergeordnet gespeichert, das heißt Nachrichten Verlauf 1 bekommt id 1 zugewiesen, id2 trägt dabei die einzelnen Nachrichten dessen Verlauf.

    Nun möchte ich allerdings nicht die erste Nachricht abfragen sondern die letzte.

    Das heißt quasi ich frage ID 1 ab WHERE id2 = max ID. und hier ist auch mein Problem, ich komm an dieser Stelle nicht weiter.

    Id und Id2 sind auto inc.

    Kann mir vielleicht jemand weiterhelfen?

    Herzlichen dank im voraus..

  • #2
    So ganz hab ich das Problem noch nicht verstanden - poste bitte mal das Create-Statement der Tabelle sowie ein paar Beispieldatensätze und dann versuch bitte nochmal Soll- und Ist-Zustand etwas konkreter zu erklären.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Zitat von Quetschi Beitrag anzeigen
      So ganz hab ich das Problem noch nicht verstanden - poste bitte mal das Create-Statement der Tabelle sowie ein paar Beispieldatensätze und dann versuch bitte nochmal Soll- und Ist-Zustand etwas konkreter zu erklären.
      Code:
      id
      bigint(20)
      
      id2
      int(11)
      
      title
      varchar(256)
      
      user1
      bigint(20)
      
      user2
      bigint(20)
      
      message
      text
      
      timestamp
      int(10)
      
      user1read
      varchar(3)
      
      user2read
      varchar(3)

      Und zwar geht es mir um folgendes,

      wir nehmen das Beispiel die ID 1, diese hat 3 Unterkategorien ID2 1,2 und 3.

      Jetzt möchte ich die höchste ID2 von der Kategorie abfragen, das heißt also ich möchte folgende Ausgabe -> wie gehts?

      Ich möchte also sozusagen die letzte Nachricht was geschrieben wurden ist abfragen und ausgeben.

      Ich hoffe es war jetzt verständlicher, Herzlichen Dank vorab
      Angehängte Dateien

      Kommentar


      • #4
        Dann musst du ID2 absteigend sortieren und mit LIMIT 1 auf einen Datensatz einschränken.
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Zitat von Quetschi Beitrag anzeigen
          Dann musst du ID2 absteigend sortieren und mit LIMIT 1 auf einen Datensatz einschränken.
          Und kannst du mir sagen wie die Abfrage dann aussehen muss? Ich steh gerade echt auf dem Schlauch.

          Danke für deine bereits gelieferten Antworten

          Kommentar


          • #6
            PHP-Code:
            ORDER BY m1.id2 desc LIMIT 1 
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Zitat von Quetschi Beitrag anzeigen
              PHP-Code:
              ORDER BY m1.id2 desc LIMIT 1 
              Soeben probiert, Funktioniert leider nicht, gibt wieder die m1.id2 allerdings immer die erste ID aus.




              Edit:

              Also im oben genannten Beispiel gibt er "hallo" aus allerdings möchte ich die letzte bzw höchste ID in Spalte ID2 also "wie gehts?"

              Bin echt überfordert

              Kommentar


              • #8
                Zitat von max075 Beitrag anzeigen
                Also im oben genannten Beispiel gibt er "hallo" aus allerdings möchte ich die letzte bzw höchste ID in Spalte ID2 also "wie gehts?"
                Dann schränken wohl die restlichen Bedingungen in deiner WHERE-Klausel das Ergebnis dahingehend ein.
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  Ich werd noch bisschen rumprobieren vielleicht bekomm ich es noch hin.

                  Trotzdem herzlichen Dank für die Zeit.

                  Kommentar


                  • #10
                    Statt "rumprobieren" würd ich es an deiner Stelle mit zielgerichteter Fehlersuche probieren.

                    In deinem Fall würde das konkret bedeuten, dass ich mir das erzeugte SQL-Statement anzeigen lassen würde um zu sehen, was genau abgefragt wird und dann nachvollziehen, warum das zu dem Ergebnis führt, dass du bekommst.
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar

                    Lädt...
                    X