Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL Abfrage mit Bedingung [Problem]

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SQL Abfrage mit Bedingung [Problem]

    Hallo Leute!
    Ich wusste leider nicht wie ich das Thema bennen sollte. Mein Script ist fast fertig und mir fehlt nur mehr dieses eine Problem das ich nicht lösen kann.

    Zum Datenbankaufbau...
    Ich habe eine Datenbank "MuBisA mit den Tabellen "user" und "connection".

    Aufbau Tabelle User:
    id, name, username, passwort

    Aufbau connection:
    id, user_id_viewer, user_id_patient


    Mein Problem
    In der Tabelle user befinden sich z.B 2 Benuter mit der ID 1 und 2. Diese werden auch in der connection eingetragen (user_id_viewer=1, user_id_patient=2). Nun habe ich einen Login, das heisst wenn ich mich mit User 1 einlogge müssen alle User mit Namen angezeigt werden die mit Ihm in Verbindungen stehen. In diesem Beispiel User 2 Sollten mehrere User in
    Verbindung sein mit User 1, so werden halt alle Namen ausgegeben.

    Ich bitte um Hilfe

    Danke!


  • #2
    SELECT [Deine-Felder-die-du-haben-willst] FROM connection c
    [IF notwendig]INNER JOIN User u ON u.id=c.user_id_viewer[/if]
    WHERE user_id_viewer=1

    So sollte das passen...
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Danke schonmal!
      Das Problem ist das, das der Viewer nicht immer 1 ist sondern davon abhängt wer sich einloggt

      Kommentar


      • #4
        Naja, wenn der user sich einloggt, muss ja irgendwo seine ID gespeichert sein, vermutlich in der Session, dann holste sie da einfach raus und schreibst sie an die Stelle, wo die eins immo steht...

        Und außerdem: http://www.php.de/php-einsteiger/489...rundlagen.html
        "My software never has bugs, it just develops random features."
        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

        Kommentar


        • #5
          Nun, dann musst du die 1 eben durch eine Variable ersetzen.
          http://hallophp.de

          Kommentar


          • #6
            Ok dann übergeb ich die id in der session ok!
            Dann versteh ich das nur nicht
            PHP-Code:
            [IF notwendig]INNER JOIN User u ON u.id=c.user_id_viewer[/if]
            WHERE user_id_viewer=

            Kommentar


            • #7
              Schau mal hier rein: Einführung in Joins .
              http://hallophp.de

              Kommentar


              • #8
                Das if kannste weglassen, ich hab das nur reingemacht, wenn du evt noch Daten aus der User-Tabelle brauchst...

                http://www.php.de/php-einsteiger/48963-lerne-grundlagen.html
                "My software never has bugs, it just develops random features."
                "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                Kommentar


                • #9
                  Also durch Paul seine Hilfe bin ich nun weiter gekommen nur habe ich noch ein Problem!

                  meine includierte connection.php sieht so aus:
                  PHP-Code:
                  <?php
                  $conn 
                  db_connect();
                  $result mysql_query('SELECT user_id_patient
                                         FROM connection c
                                         LEFT JOIN user u ON u.id=c.user_id_patient
                                         WHERE user_id_viewer=' 
                  .$myuserid);
                  nur werden jetzt noch immer alle User ausgegeben! -.-''
                  bitte um hilfe
                  danke!

                  Kommentar


                  • #10
                    Hab das jetzt anders gemacht aber funkt immer noch nicht wieso?

                    connections.php
                    PHP-Code:
                    <?php
                    $conn 
                    db_connect();
                    $result mysql_query("SELECT user_id_patient FROM connection WHERE user_id_viewer='".$myuserid."'");
                    if(!
                    mysql_num_rows($result)){

                        echo 
                    "Keine Verbindungen.";

                    } else {
                        while(
                    $row mysql_fetch_assoc($result)){

                            
                    $user_information mysql_query("SELECT * FROM user WHERE id='".$row['user_id_patient']."'");
                            
                    $user mysql_fetch_assoc($user_information);
                        }

                    }
                                           

                    ?>

                    Kommentar


                    • #11
                      gib doch mal den sql mit echo aus. Vielleicht ist deine Variable fehlerhaft
                      http://www.dhsmedia.de
                      http://www.deutsch-im-blick.de

                      Kommentar


                      • #12
                        Also ich hab das jetzt mal ausgebssert weil ich die session usw. nicht drinnen hatte
                        der ode sieht wie folgt aus

                        PHP-Code:
                        <?
                        session_start();
                        if(!session_is_registered('myuserid')){
                            header("location:login.php");
                        }
                        $myuserid = $_SESSION['myuserid'];
                        $connection = db_connect();

                        $result = mysql_query("SELECT user_id_patient FROM connection WHERE user_id_viewer='".$myuserid."'");
                        if(!mysql_num_rows($result)){

                            echo "Keine Verbindungen.";

                        } else {
                            while($row = mysql_fetch_assoc($result)){

                                $user_information = mysql_query("SELECT name FROM user WHERE id='".$row['user_id_patient']."'");
                                $user = mysql_fetch_assoc($user_information);
                            }

                        }       

                        ?>
                        wenn ich jetzt die $user ausgebe bekomme ich nur den Text "Array"

                        Kommentar


                        • #13
                          Weil's ein Array ist! Mach doch einfach ein var_dump($user);
                          Dann wirst du sehen, dass $user['name'] deine Information enthält.
                          Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                          Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                          Kommentar


                          • #14
                            da hast du recht wie geb ich die den namen nun als link aus?

                            Kommentar


                            • #15
                              Zum Beispiel so:
                              PHP-Code:
                              $base_url 'http://localhost/';
                              $script_name 'index.php';

                              $user = array("id" => 10"name" => "test");

                              echo 
                              sprintf(
                                      
                              '<a href="%s" target="%s" title="%s">%s</a>',
                                      
                              sprintf($base_url $script_name '?id=%s'$user['id']),
                                      
                              '_blank',
                                      
                              'Bitte klicken',
                                      
                              $user['name']
                                  ); 
                              (Achtung, dieses Beispiel kann auch ironisch verstanden werden (funktioniert aber))

                              *scnr*
                              Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                              Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                              Kommentar

                              Lädt...
                              X