frage bezüglich doppelter einträge in einem array

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

  • frage bezüglich doppelter einträge in einem array

    tag!
    vielleicht könnt ihr mir helfen .. wäre sehr nett. folgendes problem:

    ich habe eine datenbank in der ich instant messages für ein forum speichere. jede message hat natürlich auch einen "absender" und auch einen "empfaenger" - so auch die felder in der datenbank.

    nun will ich für die history etwas basteln das der user die messages aller gesprächspartner einsehen kann - dazu benötige ich aber ein dropdown damit der
    user den jeweiligen gesprächspartner (also entweder absender oder empfaenger) auswählen kann.

    mal angenommen meine user_id wäre die "2" .. so dachte ich, versuchs mal mit dieser abfrage:


    PHP-Code:
    $ich "2";
    SELECT DISTINCT absenderempfaenger FROM $db WHERE
    absender 
    '$ich' OR empfaenger '$ich' 

    nun .. fakt ist das ich die zwar alle angezeigt bekomme aber leider auch doppelt. wenn ich also mit user 5 geschrieben habe, hab ich ihn einmal als absender und einmal als empfaenger mit in der auflistung.

    des weiteren habe ich mich selber auch mit in der auflistung was ich eigentlich nicht will ..also muss $ich auch raus .

    könnte mir jemand mal einen gedankenanstoss oder die lösung für mein problem posten ? das wäre supernett !!!!


    vielen dank & gruß,
    patrick rost

  • #2
    ich verstehe zwar dein problem nicht, aber versuche dennoch mal zu helfen.

    mache mal auf das 2. feld auch einen DISTINCT drauf.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Code:
      SELECT DISTINCT
        IF(empfaenger=5,absender,empfaenger) kontakt
      FROM tabelle
      WHERE
        absender = 5
        OR
        empfaenger = 5
      probier das mal in phpmyadmin
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        hm ..also das verursacht sicherlich nur einen fehler:

        PHP-Code:
        SELECT distinct absenderdistinct empfaenger FROM .. 
        pat°

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          Code:
          SELECT DISTINCT
            IF(empfaenger=5,absender,empfaenger) kontakt
          FROM tabelle
          WHERE
            absender = 5
            OR
            empfaenger = 5
          probier das mal in phpmyadmin
          PERFEKT ! im phpmyadmin gehts super .. alles genial!
          nur wenn ich das nun in meine abfrage packe und in den php-code schreibe, kommt nüschts als ausgabe

          pat°

          PS: DANKE !

          Kommentar


          • #6
            HALT .. nehm alles zurück - geht perfekt !!!
            vielen dank !!!!!!!!!!!!!!!!

            Kommentar


            • #7
              EDIT:
              mach sowas nie wieder
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                lol
                also ich muss doch nochmal stören.
                was mich wundert .. phpmyadmin gibt mir 29 ergebnisse zurück .. wunderbar - das stimmt !

                php gibt mir auf der seite jedoch 73 ergebnisse zurück..
                ne idee woran es liegen könnte ?

                mein code sieht nun so aus:

                PHP-Code:

                    $history_a 
                $db->query("SELECT DISTINCT IF(empfaenger='$data[userid]',absender,empfaenger) kontakt FROM Short_Messi_messages WHERE absender = '$data[userid]' OR empfaenger = '$data[userid]' and datetime > '2003-09-01 20:28:14' ");
                    while(
                $row_a $db->fetch_array($history_a))
                              {
                              
                $rowid++;
                                        echo 
                $row_a[kontakt]." ->"
                              } 
                (das mit datetime ist nur zum testen für den moment ...)

                danke nochmal
                patrick

                Kommentar


                • #9
                  lass dir mal die abfrage ausgeben

                  versuch dich mal an mysql_num_rows, bzw. der äquivalenten funktion in deiner klasse
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    hallo mrhappiness.
                    warum auch immer .. die 79 ergebnisse in php stimmen und die 29 in phpmyadmin sind falsch.

                    nun .. ich habe noch eine frage und hoffe das ich dich hiermit nicht nerve.

                    die abfrage liefert mir nun jede menge userid`s zurück .. perfekt.

                    probelm ist nun das ich die usernamen dazu brauche . die abfrage lautet eigentlich im einzelnen:
                    PHP-Code:
                    SELECT from bb2_users where userid '$row[kontakt]' 
                    das könnte ich unter deine vorhin gezeigten abfrage einfach in eine whileschleife packen - problem ist das ich die user dann nach userid und nicht nach username sortiert habe

                    hast du hierzu noch eine idee ?

                    danke dir
                    pat°

                    Kommentar


                    • #11
                      Code:
                      SELECT DISTINCT
                        IF(t.empfaenger=5,u2.username,u1.username) kontakt
                      FROM
                        usertabelle u1
                        INNER JOIN tabelle1 t ON t.empfaenger=u1.userid
                          INNER JOIN usertabelle u2 ON t.absender=u2.userid
                      WHERE
                        t.empfaemger=5
                        OR
                        t.absender=5
                      probier das mal (ohne garantie)

                      OffTopic:
                      muss ich jetzt der dritte sein, der dien mail-zusatz in die sig mit aufnimmt?
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        das geht schon wieder perfekt .. DANKE!

                        letzte frage ..order by username .. wo muss das jetzt hin ?
                        habs getestet, bekomms aber nich hin

                        Kommentar


                        • #13
                          ich glaub ich fang bald an geld damit zu verdienen *g*

                          ORDER BY kommt nach WHERE

                          entweder ORDER BY kontakt oder - wenn er da meckert - ORDER BY IF(t.empfaenger=5,u2.username,u1.username)
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            danke .. klappert!
                            samma .. wenn ich mal jemand brauche, hättest du bock damit geld zu verdienen ?

                            mail mal falls ja.
                            gruß
                            patrick

                            Kommentar


                            • #15
                              Original geschrieben von Scriptmania
                              danke .. klappert!
                              fein
                              OffTopic:
                              samma .. wenn ich mal jemand brauche, hättest du bock damit geld zu verdienen ?
                              schon, aber ich weiß nich ob du dir meinen stundensatz leisten kannst (rest gern per mail)
                              Zuletzt geändert von mrhappiness; 02.09.2003, 21:48.
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X