Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit einer PHP/Mysql Abfrage

Einklappen

Neue Werbung 2019

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
    Mir fallen dazu an dieser Stelle nur 3 Dinge ein:
    1. Formatiere deine Query gescheit, so kann die keiner lesen.
    2. Nutze nicht mysql_ (warum siehe Signatur)
    3. Setze dich mal mit JOIN auseinander, das macht die ganze Sache für dich und für die Datenbank einfacher!
    [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
    [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

    Kommentar


    • #3
      Zitat von ChrisvA Beitrag anzeigen
      Mir fallen dazu an dieser Stelle nur 3 Dinge ein:
      1. Formatiere deine Query gescheit, so kann die keiner lesen.
      ACK.

      2. Nutze nicht mysql_
      ACK. PostgreSQL würde den Syntaxfehler sehen, MySQL nicht.

      3. Setze dich mal mit JOIN auseinander, das macht die ganze Sache für dich und für die Datenbank einfacher!
      Absolut ACK, wobei er nutzt einen JOIN, halt einen implizieten. Expliziete sind besser les- und wartbar.
      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar


      • #4
        Unter-/zusätzliche Abfrage, bei der du Absteigend nach id2 sortierst? Dann hast du als erstes Ergebniss WHERE id2 = max_id.
        Alle Beiträge nach bestem Wissen und Gewissen.

        Lasse mich gerne von anderen verbessern.

        Kommentar

        Lädt...
        X