Ankündigung

Einklappen
Keine Ankündigung bisher.

Kontaktliste mit Vorschau

Einklappen

Neue Werbung 2019

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

  • Kontaktliste mit Vorschau

    Hallo Ihr Lieben,

    Ich bin relativ neu in dem Bereich was php und mysql angeht.
    Nun brauche ich eure Hilfe- ich bin derzeit daran eine Kontaktliste zu erstellen die verschiedene Daten beinhaltet (Name, Vorname, Email, Strasse, Ort, Mobil).
    Diese möchte ich so gestalten, dass anhand einer ersten Tabelle vorerst nur der Vor- und Nachname angezeigt wird und beim darauf klicken sich eine weitere Seite öffnet in der man die gesamten Inhalte angezeigt bekommt.
    Also so wie jede Kontaktliste in einem Smartphone.

    Die erste Tabelle habe ich erstellen können- dabei wird automatisch jeder Kontakt aus der Datenbank mit Vor- und Nachname aufgelistet.

    PHP-Code:
    <?php
    $statement 
    $pdo->prepare("SELECT `id`,`vorname`,`nachname` FROM `users` ORDER BY vorname");

    if(
    $statement->execute()){
        while (
    $row $statement->fetch()) {

            
    ?>
                <div class="row2" input id="btntest" type="button" value="Check" onclick="return btntest_onclick()" />
                <div class="col-xs-10">
                    <?php
         
    echo ("<tr class='kontakte'>
         <td>
    $row[1] $row[2]</td>".
          
    "</tr>");
    Mittels Javascript-Button habe ich die Tabelle klickbar gemacht, dass sich dann eine neue Seite öffnet.

    Code:
    <script language="javascript" type="text/javascript">
        function btntest_onclick() {
            window.location.href = "detail.php";
        }
    
    </script>
    Auf der Detail.php möchte ich nun die restlichen Inhalte einer einzelnen Person auflisten.
    Und da hören meine Kenntnisse auf- wie stelle ich es an, dass genau beim klicken auf den jeweiligen Namen aus der Tabelle auf der Detail-Seite die restlichen Informationen automatisch ausgegeben werden? Ist dies überhaupt möglich, da ja die Tabelle mit Vor- und Nachnamen auch automatisch erstellt wird?

    Ich hoffe ihr könnt mir einige Tipps geben wie das ganze umzusetzen ist. Oder ob mein Ansatz ein komplett falscher ist und es eine andere Alternative gibt.

    Liebe Grüße und einen schönen Sonntag euch allen!

    Tina

  • #2
    Du musst der detail.php in der URL die entsprechende ID mitgeben (zum Erstellen der URL kannst du [man]http_build_query[/man] benutzen). Dort kannst du dann mit $_GET['id'] darauf zugreifen.

    Kommentar


    • #3
      hallo Tropi,

      Danke für deine Antwort.
      Die ID ist aber doch jedes mal eine andere, je nachdem auf welchen Namen ich klicke.
      Und die detail.php Seite soll auch nur einmal erstellt werden.
      Oder verstehe ich dich gerade falsch?

      Ich hoffe du verstehst was ich meine

      Liebe Grüße

      Tina

      Kommentar


      • #4
        Mal ganz davon abgesehen, dass du da kaputten HTML-Code produzierst, warum verlinkst du nicht einfach, anstatt mit JavaScript zu arbeiten?
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          Zitat von ttina Beitrag anzeigen
          hallo Tropi,

          Danke für deine Antwort.
          Die ID ist aber doch jedes mal eine andere, je nachdem auf welchen Namen ich klicke.
          Und die detail.php Seite soll auch nur einmal erstellt werden.
          Oder verstehe ich dich gerade falsch?

          Ich hoffe du verstehst was ich meine

          Liebe Grüße

          Tina
          Deine Dateien sollten ca. so aussehen

          index.php:
          PHP-Code:
          <?php
          for ($i 0$i 100$i++) {
           echo 
          "Name: User$i Details: ".'<a href="detail.php?id='.$i.'">Link</a><br>';
          }
          // Daten kommen natürlich bei dir aus der DB
          detail.php:
          PHP-Code:
          <?php
          $id 
          = (int) $_GET['id'];
          echo 
          $id;
          // Lade Details zu obenstehender ID

          Kommentar


          • #6
            PHP-Code:
            <?php

              $statement 
            $pdo->prepare("SELECT `id`,`vorname`,`nachname` FROM `users` ORDER BY vorname");

              if(
            $statement->execute())
              {
                while (
            $row $statement->fetch())
                {
                   echo 
            '<tr class="kontakte">
                           <td>' 
            $row['vorname'] . ' ' $row['nachname'] . '</td>
                           <td><a href="detail.php?id=' 
            $row['id'] . '" class="button">Example</a></td>
                         </tr>'
            ;
                }
              }
            ?>

            Code:
            .button {
              font: bold 11px Arial;
              text-decoration: none;
              background-color: #EEEEEE;
              color: #333333;
              padding: 2px 6px 2px 6px;
              border-top: 1px solid #CCCCCC;
              border-right: 1px solid #333333;
              border-bottom: 1px solid #333333;
              border-left: 1px solid #CCCCCC;
            }
            Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

            Kommentar


            • #7
              Hallo ihr Beiden!

              Es funktioniert! Ich habe es mit eurem Code hinbekommen. =)
              Tausend mal DANKE an euch beide!

              Euch noch einen schönen Sonntag Abend!

              Liebe Grüße

              Tina

              Kommentar


              • #8
                Huhu ihr lieben,
                ich hätte nochmal eine Frage.

                Auf der default.php Seite möchte ich nun anhand einer zweiten Tabelle den Namen des "Haustieres" auslesen.
                Dies habe ich mittels eines Inner joins auch geschafft. Beide Tabellen haben ein gleiches Feld "name" womit ich das verknüpft habe.

                PHP-Code:
                 $statement $pdo->prepare("SELECT pname, users.id AS id, users.name AS besitzer, pferde.name AS pferdebesitzer FROM pferde INNER JOIN users ON pferde.name = users.name");



                      if(
                $statement->execute()){
                    while (
                $row $statement->fetch())
                        {

                        echo  
                $row['pname'] ;

                }

                Hierbei wird mir dann auch wie zu erwarten war, jeder Pferdename ausgegeben den es gibt in der Tabelle.

                Was für eine Möglichkeit gibt es nun dass mir nur der Pferdename des Besitzers (und nicht alle) auf der default.php Seite angezeigt wird?

                Wäre euch riesig dankbar über einen Tipp

                Liebe Grüße

                Tina

                Kommentar


                • #9
                  SELECT ... FROM .. WHERE pferde.name = "bla"
                  Steht aber auch im MySQL Manual bei der SELECT-Syntax und in jedem Anfänger-Tutorial.

                  Kommentar


                  • #10
                    Hallo Tropi,

                    Danke für deine Antwort =)

                    Ich habe das jetzt probiert indem ich, wie bei meinem ersten Problem, die id vom user abfrage.
                    Jetzt wird mir aber gar nichts mehr angezeigt.
                    Oder ist das falsch?
                    Weil die id des users ist ja ne andere id wie die des Pferdes... einzige Gemeinsamkeit der beiden Tabellen ist ja nur der "Name"...

                    Liebe Grüße

                    Tina

                    Kommentar


                    • #11
                      Wenn du einen JOIN von pferde und users machst, dann kannst du auf Basis aller Attribute die in diesen beiden Tabellen vorkommen filtern. In deinem Fall willst du wohl an Hand von users.id filtern.

                      Kommentar


                      • #12
                        Hallo Tropi,

                        Naja, es geht ja auch um den User und welche Pferde zu ihm gehören.
                        Aber irgendwie komm ich grad voll durcheinander was ich als WHERE Attribut angebe, damit mir die Pferde angezeigt werden die nur zu eben diesem User gehören.
                        Verstehst du wie ich denke? Oder versuche?

                        Liebe Grüße

                        Tina

                        Kommentar


                        • #13
                          Mach mal ein SQL Dump und füge den hier ein oder erstelle ein SQLFiddle wo man sich das Problem ansehen kann.

                          Kommentar


                          • #14
                            Hallo Protestix,

                            Danke für deine Antwort.
                            Das Problem hat sich mittlerweile erledigt. Ich habe es doch noch hinbekommen. =)

                            Liebe Grüße

                            Tina

                            Kommentar

                            Lädt...
                            X