4rer mit SQL

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

4rer mit SQL

Beitragvon Outrun » Do 24 Jan, 2008 16:07

Hallo Leute,
bin neu hier und hab gleich mal ne Frage.

Und zwar ich soll fĂĽr meine mutter ein Progamm fĂĽr den Fasching schreiben.
Ein Lotto Programm um genauer zu sein. Also in die Datenbank wird der Name und die 6 Zahlen des Spielers eingetragen. Eine Abfrage fĂĽr 6er und 5er hab ich schon erstellt.

Code fĂĽr den FĂĽnfer:
SELECT *
FROM Lotto
WHERE Zahl1="4" And Zahl2="6" And Zahl3="7" And Zahl4="16" And Zahl5="24" And Zahl6<>"40" Or
Zahl1="4" And Zahl2="6" And Zahl3="7" And Zahl4="16" And Zahl5<>"24" And Zahl6="40" Or
Zahl1="4" And Zahl2="6" And Zahl3="7" And Zahl4<>"16" And Zahl5="24" And Zahl6="40" Or
Zahl1="4" And Zahl2="6" And Zahl3<>"7" And Zahl4="16" And Zahl5="24" And Zahl6="40" Or
Zahl1="4" And Zahl2<>"6" And Zahl3="7" And Zahl4="16" And Zahl5="24" And Zahl6="40" Or
Zahl1<>"4" And Zahl2="6" And Zahl3="7" And Zahl4="16" And Zahl5="24" And Zahl6="40";

So hab jetzt das Problem das ich fĂĽr den Vierer nicht mehr so ganz weiĂź wie ich das schreiben soll.

Hat jemand von euch eine Idee fĂĽr mich??

Bitte Bitte brauch ganz dringen Hilfe

3er gibt es bei diesem Spiel keinen.

glg Luaks
Outrun
Neu im Board
Neu im Board
 
Beiträge: 6
Registriert: Do 24 Jan, 2008 16:02

Re: 4rer mit SQL

Beitragvon hellbringer » Do 24 Jan, 2008 16:20

Code: Alles auswählen
SELECT * FROM `Lotto` WHERE (
IF(`Zahl1` = 4, 1, 0) +
IF(`Zahl2` = 6, 1, 0) +
IF(`Zahl3` = 7, 1, 0) +
IF(`Zahl4` = 16, 1, 0) +
IF(`Zahl5` = 24, 1, 0) +
IF(`Zahl6` = 40, 1, 0)) = 4


FĂĽr 3er, 5er und 6er einfach die Zahl am Schluss ersetzen.


Code: Alles auswählen
SELECT *, (
IF(`Zahl1` = 4, 1, 0) +
IF(`Zahl2` = 6, 1, 0) +
IF(`Zahl3` = 7, 1, 0) +
IF(`Zahl4` = 16, 1, 0) +
IF(`Zahl5` = 24, 1, 0) +
IF(`Zahl6` = 40, 1, 0)) AS `num`
FROM `Lotto`


Und hier bekommst du von allen Personen die Anzahl der Treffer als 'num' ausgegeben.
Zuletzt geändert von hellbringer am Do 24 Jan, 2008 16:58, insgesamt 1-mal geändert.
hellbringer
Profi-User
Profi-User
 
Beiträge: 1619
Registriert: Di 04 Mai, 2004 19:35

Beitragvon Outrun » Do 24 Jan, 2008 16:20

Danke erstmal


Bekomm aber dann die Fehlermeldung:

'vier' ist kein gültiger Name. Stelle sie sicher, dass der Name nicht zu lange ist und keine ungültgen Zeichen oder ungültigen Interpunktionszeichen erhält
Outrun
Neu im Board
Neu im Board
 
Beiträge: 6
Registriert: Do 24 Jan, 2008 16:02

Beitragvon hellbringer » Do 24 Jan, 2008 16:59

Weil das Forum meine Klammern durch %u28 und %u29 ersetzt hat und mich dann gesperrt hat, als ich sie korrigieren wollte. Probiers nochmal.
hellbringer
Profi-User
Profi-User
 
Beiträge: 1619
Registriert: Di 04 Mai, 2004 19:35

Beitragvon hellbringer » Do 24 Jan, 2008 20:54

Sorry, blödsinn. In meinem Code geh ich davon aus, dass die Zahlen immer in der gleichen Spalte stehen, was natürlich nicht so funktionieren kann. Hier die korrigierten Versionen:

Code: Alles auswählen
SELECT * FROM `Lotto` WHERE (
IF(`Zahl1` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl2` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl3` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl4` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl5` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl6` IN (4,6,7,16,24,40), 1, 0)) = 4


Code: Alles auswählen
SELECT *, (
IF(`Zahl1` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl2` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl3` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl4` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl5` IN (4,6,7,16,24,40), 1, 0) +
IF(`Zahl6` IN (4,6,7,16,24,40), 1, 0)) AS `num`
FROM `Lotto`
hellbringer
Profi-User
Profi-User
 
Beiträge: 1619
Registriert: Di 04 Mai, 2004 19:35

Beitragvon medice » Fr 25 Jan, 2008 01:22

Wenn da ein bißchen zum Spaß Lotto gespielt werden soll, solltest du dir auch überlegen welchen Modus "x aus y" du wählst, der für die Anzahl der Mitspieler in etwa passt, sodass auch realistisch gewonnen werden kann.
Als Beispiel: 6 aus 45 bietet 8.145.060 unterschiedliche Tip Kombinationen, und davon sind 99,7% nicht einmal Vierer. Die Chance dass es da zu Frust kommt ist also sehr groĂź.
Ich wollte selbst mal so ein kleines Lotto-addon fĂĽr eine Community bauen und hab nach einer brauchbaren Kombination gesucht. Ich bin bei 5 aus 25 gelandet (irgendwo bei 53.000 Kombinationen herum war das glaub ich) was immer noch recht beachtlich ist. Vermutlich wirst dus noch schlanker angehen wollen ;)
Mfg
Medice

Wir in Bayern brauchen keine Opposition, weil wir sind schon Demokraten. (c) Gerhard Polt
medice
Advanced Power-User
Advanced Power-User
 
Beiträge: 3288
Registriert: Fr 13 Mai, 2005 10:32
Wohnort: Graz

Beitragvon Outrun » Fr 25 Jan, 2008 16:12

Hab jetzt den geänderten Code eingefügt, aber ich bekomme noch immer den selben Fehler. Es handelt sich um Access 2007.
Bild
Outrun
Neu im Board
Neu im Board
 
Beiträge: 6
Registriert: Do 24 Jan, 2008 16:02

Beitragvon hellbringer » Fr 25 Jan, 2008 16:55

Hättest du früher sagen müssen. Ich bin von MySQL ausgegangen, da es das populärste Open-Soure Datenbanksystem ist. Von Access hab ich keine Ahnung, sorry.
hellbringer
Profi-User
Profi-User
 
Beiträge: 1619
Registriert: Di 04 Mai, 2004 19:35

Beitragvon max_payne » Fr 25 Jan, 2008 16:58

und was hast du eingefĂĽgt? weil vierer kommt in keiner der abfragen vor

btw: du kannst den text des dialoges leicht mit strg+c kopieren
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25


ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste