Mehrere freiwählbare Werte in einer Spalte

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

  • Mehrere freiwählbare Werte in einer Spalte

    Hi,
    Also ich möchte für ein Browsergame verschiedene Waffen machen die man dann kaufen kann aber das ist nicht mein Problem. Mein Problem ist das jeder so viele Waffen kaufen kann wie er will und die dann in einem Drop down Menü wählen kann jetzt weiss ich aber nciht wie ich das Speichern soll. Ich dachte mir jeder User hat in der MySQL datenbank eine zeile und da ne Spalte die Waffen heisst aber da ist mein Problem. Kann man in eine Spalte mehrere Sachen reinpacken also z.B. Die Id's der Waffen um die dann einzeln in ein Dropdown-menü zu packen? Oder hat jemand ne andere Idee wie ich das verwirklichen kann? Ich hab zur Zeit volld en Gedankenstau also helf mir bitte.

    (Ich wusste nciht ob das in PHP oder MySQL kommt deshalb ist es hier )

    mfg
    Psychomaster
    Zuletzt geändert von Psychoamster; 31.03.2004, 19:15.

  • #2
    wenn du dir gedanken machst, wie die beziehungen in deiner datenbank aussieht, dann wirst du auch ruck zug auf die struktur deiner datenbank kommen.

    ich vermute mal das ist eine 1.n beziehung
    sprich: ein benutzer kann mehrere objekte haben

    als zwei tabellen

    benutzer
    objekte

    und dann suchst du jeweils nach den objekten für einen benutzer.

    oder hab ich dich falsch verstanden

    Kommentar


    • #3
      Meinst du das jetzt so:
      [FONT=courier new]
      +------------------+
      | , ,Datenbank , ,|
      +------------------+
      |User , , , , , , ,| <- Tabelle mit Usern
      |Objekt(waffen) , ,| <- Tabelle mit waffen
      +------------------+
      [/FONT]

      Jetzt muss ich das zum Beispiel für jede Waffe ne Zeile haben und da in ner Spalte die ID des Users der die waffe besitzt?

      Das wäre ja noch nciht so schwer aber wie kann ich jetzt für einen User der zum Beispiel die ID 5 hat alles Waffen raussuchen die er hat und die dann in einem Dropdown menü auflisten?
      Wie kann man überhaupt wasraussuchen. Und wenn man schon dann für die Waffen ne ID reinschreibt so wieso kann man dann cnith einfach die ID der Waffe in eine Spalte des Users schreiben. Dann kann ich mir ne Tabelle sparen. Aber trotzdem muss ich wieder mehrere Sachen aus einer Spalte lesen. Egal wie ich es mache nd da weiss ich nciht wie ich das amchen soll.

      Ich ahbe mir gedacht ich Speichere einfach alles als Array in der Spalte aber wie kann man dann einfach was anhängen oder rauslöschen?

      (Fagen über fragen und keiner weiss die antwort )

      mfg Psychomaster

      Kommentar


      • #4
        nimmt eine 3. Tabelle (tbluserweapons) dazu mit

        tblid, userid, weaponid

        dann kannst du z.B. mit

        select a.strweaponname from tblweapons a inner join tbluserweapons b
        on a.wid=b.weaponid where b.userid=1 order by a.strweaponname asc

        das gewünschte aus der DB holen. (der UserId kannst du z.B. schon beim
        Login ermitteln und in einer Session ablegen)

        Kommentar


        • #5
          Das ist es vielen dank. So geht es ohne array oder sonst was THX

          Kommentar


          • #6
            Sry wegen DP.

            Hab noch ein Problem
            Also ich hab das jetzt so

            +------+--------------+---------------+
            |id , , ,|username, ,|waffe, , , , , ,|
            +------+--------------+---------------+
            |1 , , , |Tester , , , ,|Holzschwert |
            +------+--------------+---------------+
            |2 , , , |TeXtEr , , , ,|Laser , , , , , |
            +------+--------------+---------------+
            |3 , , , |Tester , , , ,|Gabel , , , , , |
            +------+--------------+---------------+

            Jetzt möchte ich mit dem Usernamen alle Waffen auflisten mit einer while schleife und das sieht jetzt so bei mir aus:
            PHP-Code:
            <?php
            $user 
            $SESSION['user'];
            ?>
            <center>Waffe:
            <select size="1" name="waffe">
            <option value="" selected>Nichts</option>
            <?php
            $result 
            mysql_query("SELECT * FROM userwaffen WHERE user='$user'") OR die('Kann die Daten nicht lesen');
            while(
            $line mysql_fetch_object($result)) {
            echo 
            "<option value=$line->waffe>$line->waffe</option>";
            }
            ?>
            </select><br>
            Geht das eigendlich so oder wie soll ich es machen? (In der Session ist der username Tester)
            Oder gibt es nen anderen Weg dafür?

            Kommentar


            • #7
              Ähm, warum machst du nicht einfach, wenn was nicht läuft und du nicht
              klar kommst, dann kannste fragen.

              Sollen wir denn alles für dich vorab testen oder was

              Kommentar


              • #8
                Ne müsst ja nicht alles Testen das kann ich schon selbst. Ich ahb den Code nur gepostet das ihr eher wisst was ich meine.

                , wenn was nicht läuft und du nicht
                klar kommst,
                Eben es läuft ja nciht richtig es sollte eigendlich rein Technik gehen doch das tut es nicht es zeigt nichts an. Aber sollte ja das einzige was ich eigendlich Zeigen könnte wäre das hier:
                PHP-Code:
                $result mysql_query("SELECT * FROM userwaffen WHERE user='$user'") OR die('Kann die Daten nicht lesen');
                while(
                $line mysql_fetch_object($result)) { 
                Ob das so möglich ist. Ich will ja nicht das ihr mir alles testet und verbessert. Ich könnte es selbst wenn ein Fehler ausgegeben wird aber ist ja ncihts so.

                Kommentar


                • #9
                  ich verstehe nicht ganz wasfür ein Wirrwar du postest vielleicht weil ich
                  Ausländer und somit der deutschen Sprache nicht mächtig genug bin

                  Egal, den Fehler seh' ich schon bei dir, aber ich sag' erstmal nicht , nur
                  ein Tipp:

                  deine Abfrage endet etwa so ... where user='' und deshalb gibt es
                  keine SQL-Fehler => Die Verwendung von Session in Manual nachlesen,
                  dann musst du drauf kommen what's wrong

                  Kommentar


                  • #10
                    Ach ich habs ich hab $user = $SESSION['user'] geschrieben statt $user = $_SESSION['user'].
                    Jetzt klappt es gut. So ein kleiner Gedankenanstoss bewirkt manchmal einfach wunder.
                    Ich weiss das irgendwas ohne _ ist aber ich wusste nciht mehr ob es jetzt $_POST oder $_SESSION ist aber ist woll keins von beiden muss nochmal schauen was es war. THX.

                    Kommentar

                    Lädt...
                    X