Prüfen ob vorhanden ...

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

  • Prüfen ob vorhanden ...

    Hallo zusammen ,

    ich habe folgendes Problem :

    Also ich lasse 3 Zahlenwerte in eine DB Schreiben , in jeweils ein Feld !

    z.b.

    Feld A = 2
    Feld B = 15
    Feld C = 47

    Ausgeben lasse ich es mir durch :

    2-15-47 ...... soweit ist alles ok ! Nun will ich aber verhindern , das genau diese zahlen doppelt vorkommen !
    Man könnte aber z.b. die zahlen 2-15-46 eintragen aber nicht mehr die
    2-15-47 weil die ja schon drin steht in der DB !


    Wie kann man mein Problem irgentwie lösen ?


    Mit freundlichen Grüssen

    Launebaer

  • #2
    eventuell indem du uerst prüfst ob die zahlen schon vorhanden sind
    Die wenigsten Fehltritte begeht man mit den Füssen.

    Kommentar


    • #3
      ähm, *kopf kratz*

      ich glaube du meinst, ob DIE KOMBINATION der drei Zahlen schon drinn steht? Oder? Denn wenn ich dich richtig verstehe, dann willst du 2-15-46 schon noch in eine neue row eintragen können, aber 2-15-47 nicht mehr, weils das in der KOMBINATION der drei Felder so schon gibt, richtig?

      Klingt nach einer verschachtelten Abfrage, wo du if schleifen in einander verschachtelst,also quasi (if, else if, else if)

      if A=2
      dann if B=15
      danndann if C=47

      usw...

      Ich weiß nur nicht, ob die profies hier nen schnelleren weg kennen, denn ich weiß nicht wie lahm das dann bei größeren Mengen wird...

      LG,
      C8n8b1s

      Kommentar


      • #4
        Guten Morgen ,

        ich möchte hier es nochmal verdeutlichen was mein Problem ist :

        Also ich habe in einer Datenbank folgendes stehen

        Id | Zahl_A | Zahl_B | Zahl_B | Nickname

        der 1. Eintrag wäre z.b.

        1 | 1 | 15 | 47 | Test User

        wenn ich nun die 3 Zahlen überprüfen lassen würde , würde es so

        2 | 1 | 15 | 46 | Tom

        nicht mehr gehen , weil ja bei Zahl_A und bei Zahl_B die werte de ich eintragen möcht schon existieren !

        Es soll aber gehen , ohne das ein Eintrag :

        3 | 1 | 15 | 47 | Bärbel

        noch mal vorkommt , weil die kombination steht in der DB !


        Habt ihr Lösungsvorschläge ? Wäre sehr Dankbar !

        Greez

        Launebaer

        Kommentar


        • #5
          PHP-Code:
          $sql "SELECT ... FROM tabelle WHERE Zahl_A = $za AND Zahl_B = $zb AND Zahl_C = $zc";
          $res mysql_query($sql);
          if (!
          mysql_num_rows($res)) {
              
          mysql_query("INSERT ...");

          Kommentar


          • #6
            Hi ID wird ja wahrscheinlich eh immer hochgezählt.

            Und mit der Abfrage:

            SELECT User WHERE Zahl_a = $zahl_1 OR Zahl_b = $zahl_2 OR zahl_c = $zahl_3

            prüfst du ob EINE der 3 Zahlen bei einem User schon vorhanden ist...

            Das wäre halt eine Möglichkeit zu prüfen ob eine der Zahlen schon vorhanden ist. Wenn du die sachen mit AND koppelst würdest du prüfen ob eine GLEICHE Kombination vorliegt.

            Kommentar


            • #7
              Ach jetzt schnalle ich es auch. Sorry.

              Und schlage vor:

              Wenn
              SELECT COUNT(A) FROM ... WHERE (A=$a AND B=$b) OR (A=$a AND C=$c) OR (B=$b AND C=$c)
              keine Tupel liefert, dann eintragen. Sonst nicht.
              Zuletzt geändert von onemorenerd; 08.11.2005, 08:31.

              Kommentar


              • #8
                Hehe... könnte auch richtig sein. Ich weiß noch nicht so ganz wo er hin will =)

                Dürfen alle 3 Zahlen (komplette Kombination) nicht vorkommen oder nur Teile davon ??

                Kommentar


                • #9
                  Warum legst du nicht mit phpmyadmin einen UNIQUE KEY auf die drei Spalten?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    @happi:

                    das würde aber vorraussetzten das jede zahl nur einmal vorkommen darf.

                    Sprich:

                    1|2|3
                    und
                    1|2|4

                    wäre ungültig.

                    Kommentar


                    • #11
                      Richtig ..... also würde es so nicht gehen !


                      Und die Zahlen können von einen User eingegeben werden , also auch unabhängig vom User !


                      Ich glaub ich bin am verzweifeln *grummel

                      Kommentar


                      • #12
                        Wieso verzweifeln??

                        eigentlich sind hier für alle Möglichkeiten der Problemstellung ansätze... du musst nur noch wissen was du haben willst. =)

                        Kommentar


                        • #13
                          Falsch, so würde es gehen. Und es ist eine so elegante Lösung, dass ich mich schäme, nicht selbst drauf gekommen zu sein.

                          ALTER TABLE ... ADD UNIQUE (A, B, C)

                          Und dann versuch mal
                          INSERT INTO ... (A, B, C) VALUES (1, 2, 3), (1, 2, 4)
                          Das sollte klappen. Aber anschließend geht
                          INSERT INTO ... (A, B, C) VALUES (1, 2, 3)
                          nicht, weil dieses Tupel so schon drin steht. Jedenfalls sollte das ein UNIQUE-Key bewirken.

                          Kommentar


                          • #14
                            Original geschrieben von Ueps
                            @happi:

                            das würde aber vorraussetzten das jede zahl nur einmal vorkommen darf.

                            Sprich:

                            1|2|3
                            und
                            1|2|4

                            wäre ungültig.
                            Dieter Nuhr...
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Aua aua ha...

                              jo ich geh dann lieber in die Ecke und schäm mich.

                              Kommentar

                              Lädt...
                              X