Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysql Abfrage Problem oder Schleifen Problem

Einklappen

Neue Werbung 2019

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

  • Mysql Abfrage Problem oder Schleifen Problem

    Hallo, ich forste nun seit monaten das ganze Internet durch, aberr ich finde keine Lösung.
    Bitte helft mir.
    Es geht um folgendes.
    ich habe 2 Datenbanken.
    bei der ersten Datenbank handelt es sich um die Userdatenbank.
    Jeder user kann verschiedene Spiele spielen:
    DB User
    ________________
    'id' 'spiele'
    1 AofE
    1 N4Speed
    1 Moorhuhn
    Datenbank User enthält also 1 User mit der ID 1 der 3 Spiele spielt.

    DB playername
    ______________
    'playername' 'spiele'
    Martin N4Speed
    RacerM N4Speed
    Jäger Moorhuhn
    Eroberer AofE

    Datenbank pladderndem sagt mir also die verschiedenen Namen die benutzt werden/Spiel.

    Jetzt kommts wo ich das Probleme habe.
    ich möchte sobald ich als user mit der id 1 eingeloggt bin PRO Spieleigene Tabs.
    Ganze tabs.
    das klappt auch:

    <?php


    [COLOR="rgb(0, 191, 255)"]$db = mysqli_connect[/COLOR] [/COLOR](DB_HOST, DB_BENUTZER, DB_password, DB_NAME);
    mysqli_set_charset($db, "utf8");
    $sqli2 = "SELECT spiele FROM user WHERE id = $id ";
    $result2 = mysqli_query($db, $sqli2);

    while ($row2 = mysqli_fetch_assoc($result2))

    {

    echo '<div class="tabs">';
    echo '<ul>';
    echo '<li><a href="#tabs-1"> '. $row2['spiele'] .' </a></li>';
    echo '<li><a href="#tabs-2">...</a></li>';
    echo '<li><a href="#tabs-3">...</a></li>';
    echo '</ul>';
    echo '<div id="tabs-1">';
    echo '<p>Proin elit ac sollicitudin mi sit amet mauris. Nam elementum quam us.</p>';
    echo '</div>';
    echo '<div id="tabs-2">';
    echo '<p>Proin elit ac sollicitudin mi sit amet mauris. Nam elementum quam us. </p>';
    echo '</div>';
    ....


    }
    ?>

    nun will ich dass es mir in jedem der TAB (es sind 3 Tabs, da 3 Spiele)
    in einer Registerkarte die playernamen anzeigt.

    ich hab es so probiert:

    <?php
    $db = mysqli_connect (DB_HOST, DB_BENUTZER, DB_password, DB_NAME);
    mysqli_set_charset ($db, "utf8");
    $sqli = "SELECT playername FROM playername WHERE spiele = '".$row2['spiele']."' ";
    $result = mysqli_query($db, $sqli);


    while ($row = mysqli_fetch_assoc($result))
    {


    echo '<h3> '. $row['playername'] .' </h3>';

    ?>

    Hier das Problem.
    Im Tab Aofe zeigt es mir in einer Registerkarte alle 4 Namen an
    Im Tab N4Speed zeigt es mir alle 4 Namen an einer Registerkarte alle 4 Namen an
    Im Tab Moorhuhn zeigt es mir alle 4 Namen an einer Registerkarte alle 4 Namen an.
    Was mach ich falsch? Ich vermute die zweite schleife geht die erste schleife voll durch.
    Hat irgendjemand eine Lösung wie ich das geregelt bekomme?

  • #2
    Kannst du bitte deinen Post editieren und den Code in [php]...[/php] verpacken?

    Kommentar


    • #3
      Gut so?

      Zitat von monolith Beitrag anzeigen
      Kannst du bitte deinen Post editieren und den Code in [php]...[/php] verpacken?
      beim editierenwar der phpwiki button nicht. ich habe aber die Farben wie im editor gekennzeichnet.

      Kommentar


      • #4
        Editieren, dann 'Erweitert' klicken... et voila, da isser, der Button
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Die PHP-Tags kann man übrigens auch ohne den Button einfach per Hand einfügen.

          Zu deinem Problem:

          Aus deinen Code-Schnipseln ist nicht wirklich ersichtlich wie du es letztendlich aufgebaut hast. Ich vermute mal, dass du die while-Schleife für den Username in jedem Tab ausführen lässt, was dazu führt, dass eben alle rows ausgegeben werden.

          Die Lösung mit 2 Datenbankverbindungen halte ich aber sowieso für Murks.
          Schau dir mal Foreign Keys an und gleich dazu noch das Thema Datenbank-Normalisierung.
          Ich denke, dann wirst du ganz schnell selbst auf die Lösung kommen.

          LG
          Die mysql_* Erweiterung ist veraltet!
          Besser: mysqli_* oder (noch besser) PDO

          Kommentar

          Lädt...
          X