Announcement

Collapse
No announcement yet.

Select if insert - problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Select if insert - problem

    Servus!

    Was ich versuche ist in einem query zu prüfen ob schon zu viele spieler in einem spiel sind oder nicht wenn nicht soll er einen insert machen!

    nur dass foglenes statement ohne insert functioniert und mit nicht ... ich bekomms gras einfach nicht hin jmd tipps/Lösung für mich?

    Code:
    SELECT IF (COUNT(`gameplayers`.`gpid`)>`maps`.`player`,(INSERT INTO `gameplayers` SET `uid`='1'),0) FROM `gameplayers`, `maps`,`games` WHERE `gameplayers`.`gid` = '1' AND `mid`=`games`.`map` AND `games`.`gid`=1

    danke für eure hilfe zeit!

    grz
    saig

  • #2
    Hallo,

    in einem IF(<Bedingung>, <True-Ausdruck>, <False-Ausdruck) kannt du für <True-Ausdruck> auch nur einen Ausdruck angeben und kein Statement!
    Du kannst jedoch ein INSERT-Statement formulieren und das Select für die Werte verwenden.

    In etwa so:
    [highlight=sql]
    insert into gameplayers (uid)
    select '1'
    FROM gameplayers, games
    WHERE gameplayers.gid = '1'
    AND games.gid = 1
    group by gameplayers.gpid
    having count(gameplayers.gpid) < (
    select maps.player from maps
    where mid = games.map)
    [/highlight]
    Allerdings hast du die genaue Struktur nicht angegeben, so daß ich ein wenig raten muß und deshalb das Ganze durchaus fehlerhaft sein kann.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment

    Working...
    X