Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Wert zufällig zuweisen! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Wert zufällig zuweisen!


 
FloSch
10-08-2004, 10:27 
 
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?!

 
mrhappiness
10-08-2004, 10:29 
 
ein wert des datensatzes bei dem home und away 0 sind? also eine zufällige spalte?

 
FloSch
10-08-2004, 10:48 
 
nun entweder home oder away soll sich dann um 1 erhöhen bzw. die Zahl 1 reingeschrieben werden!

 
mrhappiness
10-08-2004, 10:54 
 
dann pack die spaltennamen in ein array, wähle per zufall einen eintrag daraus aus und nimm das als spaltenname in deinem update

 
FloSch
10-08-2004, 11:19 
 
Haste dafür vielleicht sogar noch ein Beispiel?!

 
mrhappiness
10-08-2004, 11:24 
 
$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

 
FloSch
10-08-2004, 11:37 
 
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!

 
goth
10-08-2004, 12:32 
 
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)

 
mrhappiness
10-08-2004, 13:47 
 
wie war das mit dem poser? ;)

 
goth
10-08-2004, 14:13 
 
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 ... !

 
mrhappiness
10-08-2004, 16:00 
 
Original geschrieben von goth
Hinweis für einen einfacheren Lösungsansatzeinfacher 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 :)

 
goth
10-08-2004, 16:30 
 
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 ... !

 
Abraxax
10-08-2004, 16:39 
 
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.

 
asp2php
10-08-2004, 16:50 
 
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 ;)

 
goth
10-08-2004, 17:04 
 
Ja .. richtige P.I.S.A.-Mentalität ... !

 
Abraxax
10-08-2004, 17:06 
 
@goth
und du hast die pisa-kids unterstützt .... schande über dich ... :p :D

 
goth
10-08-2004, 17:09 
 
Tja ... das muss wohl die Hitze sein ... habe heute nur 2 Ventilatoren im Büro ... :(

 
Abraxax
10-08-2004, 17:15 
 
Original geschrieben von goth
habe heute nur 2 Ventilatoren im Büro du musst die auch anmachen ... :p

 
goth
10-08-2004, 17:41 
 
Hättest Du das nicht früher sagen können ... jetzt gehe ich gleich nach Hause ... !

 
wahsaga
10-08-2004, 18:26 
 
Original geschrieben von goth
Die Zuweisung an @dummy ganz einfach damit der ermittelte Wert auch in der 2. Zuweisung zur Verfügung steht ...
ist das so'ne art wegwerf-alias, für spalten, die ich nachher nicht im ergebnis haben möchte?

cool, kannte ich auch noch nicht.

 
goth
10-08-2004, 18:48 
 
Genau ... deshalb hiess er ja auch @dummy ... man hätte Ihn auch @trash nennen können ... !


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:51 Uhr.