Wert zufällig zuweisen!

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

  • Wert zufällig zuweisen!

    Hallo zusammen,

    hab hier im Forum schon danach gesucht, aber leider nichts gefunden...oder
    falsch geschaut!!!

    Hab grad keine Idee wie ich folgendes hinbekomme:

    ich habe eine Abfrage die sich auf zwei Spalten konzentrieren!

    Spalte 1 = home
    Spalte 2 = away

    Wenn nun home == "0" und away =="0" ist, soll sich ein Wert per Zufall um
    1 erhöht werden und dann "upgedatet" werden!

    Also keine Abfrage mit RAND() sondern eher eine "Eingabe" (UPDATE) !!!

    Kann mir jemand einen Ansatz dafür geben?!

  • #2
    ein wert des datensatzes bei dem home und away 0 sind? also eine zufällige spalte?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      nun entweder home oder away soll sich dann um 1 erhöhen bzw. die Zahl 1 reingeschrieben werden!

      Kommentar


      • #4
        dann pack die spaltennamen in ein array, wähle per zufall einen eintrag daraus aus und nimm das als spaltenname in deinem update
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Haste dafür vielleicht sogar noch ein Beispiel?!

          Kommentar


          • #6
            PHP-Code:
            $spalten = array('home''away'); 
            das ist der anfang

            mit http://www.php.net/array-rand kannst du einen zufälligen eintrag aus dem array lesen (syntax im online-handbuch nachschlagen, hab's dir sogar schon verlinkt)

            der rest sollte kinderspiel sein oder?
            musst ja bloß noch beim UPDATE den zufällig ausgelesenen spaltennamen einsetzen
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Mit dem zufälligen eintrag aus dem array auslesen war ich mir nicht
              ganz sicher!
              jetzt aber schon!
              ansonsten war schon alles klar!

              Vielen Dank!

              Kommentar


              • #8
                Unter MySQL geht's auch mit einem einzigen SQL-Statement:

                UPDATE tabelle SET home = IF((@dummy:=RAND()*2) <= 1, 1, 0), away = IF(@dummy > 1, 1, 0)
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  wie war das mit dem poser?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Ich glaube das ist etwas anderes wenn man so eine blödsinnige Entwicklung hier verfolgt ... und dann 'nen Hinweis für einen einfacheren Lösungsansatz gibt ...

                    Schliesslich habe ich euch 2 Stunden für einen Lösungsversuch Zeit gelassen ... mit mässigem Ergebnis ... !

                    Poser sind eher Leute, die sich darum schlagen innerhalb von Sekunden nach dem Posting als erster einen vollständigen Lösungsansatz zu liefern ... vollkommen abartig sowas ... !
                    Zuletzt geändert von goth; 10.08.2004, 14:17.
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      Original geschrieben von goth
                      Hinweis für einen einfacheren Lösungsansatz
                      einfacher zu verstehen aber nicht und wir wollen ja, dass die lieben user sich langsam weiterentwicklen und nicht irgendwas auslassen, weil's eleganter/einfacher geht nur um dann die nächste einfache frage zu haben

                      Poser sind eher Leute, die sich darum schlagen innerhalb von Sekunden nach dem Posting als erster einen vollständigen Lösungsansatz zu liefern ... vollkommen abartig sowas ... !
                      wie gut, dass ich so leute nicht kenne
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Was ist an dem Statement jetzt wieder nicht zu verstehen ... ?!

                        UPDATE tabelle SET home = IF((@dummy:=RAND()*2) <= 1, 1, 0), away = IF(@dummy > 1, 1, 0)

                        Die einzelnen zuweisungen des Updates werden von Links nach Rechts abgearbeitet.
                        @dummy ist eine Uservariable ...

                        @dummy wird jetzt zunächst ein Wert RAND()*2 (*2 nur damit's schöner ist) zugewiesen ... dieser Wert wird mit <= 1 verglichen ... und ein entsprechender Wert (1 oder 0) dem Attribute home zugewiesen ...

                        Die Zuweisung an @dummy ganz einfach damit der ermittelte Wert auch in der 2. Zuweisung zur Verfügung steht ...

                        Die zweite Zuweisung ist vom Prinzip her das Gleiche ... nur das hier auf > 1 geprüft .... und dann der entsprechende Wert zugewiesen wird ...

                        Extrem simpel ... finde ich ... !
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          Original geschrieben von goth
                          Was ist an dem Statement jetzt wieder nicht zu verstehen ... ?!
                          das meint happy doch gar nicht.

                          er meint eher, dass die user mal das eigene hirn anstrengen sollen und auch mal einen etwas umständlicheren lösungsweg verwenden dürfen.

                          wichtig ist doch erst einmal, dass sie verstehen, was sie eigentlich tun.

                          wenn sie einen optimalen lösungsweg vorgesetzt bekommen, lernen sie nichts.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Original geschrieben von Abraxax
                            lernen sie nichts.
                            die meisten lernen sowieso wenig dabei. Wenn sie die Lösung hinbekommen, dann ist das Teil schon gegessen. Beim nächsten Mal nehmen sie die Prügel des Forums in Kauf und werden sich anschliessend daran erinnert, dass sie das Problem schon mal gehabt haben

                            Kommentar


                            • #15
                              Ja .. richtige P.I.S.A.-Mentalität ... !
                              carpe noctem

                              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                              Kommentar

                              Lädt...
                              X