kostenloser Webspace werbefrei: lima-city


Gebäudeskript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jof

    jof hat kostenlosen Webspace.

    Folgendes Skript soll in meinem game die geb?ude bauen (vereinfachte und noch unvollst?ndige Version). Warum wird immer nur "kannbau2 geb?ude werden gebaut" ausgegeben?


    <?
    //Geb?udebau
    //Die Variablen $kind und $build wurden ?bergeben.

    $name=$_SESSION['name'];

    $host="mysql.lima-city.de";
    $user="xxxxxxx";
    $database="xxxxxx";
    $pass="xxxxxxx";
    $dz=mysql_connect($host,$user,$pass);
    mysql_select_db($database,$dz);

    if (!is_numeric($build)) echo "Gib bitte einen nummerischen Wert an.";

    if ($kind=="Steinmetz")

    {
    $steine=200;
    $holz=50;
    }

    $holzpreis=$holz*$build;
    $steinpreis=$steine*$build;

    $query = "SELECT vh FROM tab2 WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $holzvorrat=$ds->vh;


    $query = "SELECT vs FROM tab2 WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $steinvorrat=$ds->vs;

    if ($holzpreis<=$holzvorrat) $bau1="ja";

    $kannbau1= $holzvorrat / $holz; //hier muss noch nach untenn hin gerundet werden.

    if (steinpreis<=$steinvorrat) $bau2="ja";

    $kannbau2 =$steinvorrat / $steine; //hier muss noch nach unten hin abgerundet werden.

    if ( $bau1=="ja" && $bau2=="ja" )

    {

    $query = "SELECT fsm FROM tab WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $fsm=$ds->fsm;

    if($kind="Steinmetz") $kind2 = "fsm";

    $tatbau=$build;

    $neu = $fsm + $tatbau;

    $query = "UPDATE tab SET $kind2='$neu' WHERE name = '$name'";
    $sql=mysql_query($query);

    //+rohstoffe abziehen.

    }


    else

    {


    if ($kannbau1 > $kannbau2 ) $tatbau = $kannbau2;
    elseif ($kannbau2 > $kannbau1 ) $tatbau = $kannbau1;
    elseif ($kannbau1 = kannbau2 ) $tatbau= $kannbau1;


    $query = "SELECT fsm FROM tab WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $fsm=$ds->fsm;

    if($kind="Steinmetz") $kind2 = "fsm";

    $neu2 = $fsm + $tatbau;

    $query = "UPDATE tab SET $kind2='$neu2' WHERE name = '$name'";
    $sql=mysql_query($query);

    //+Geld abziehen

    }

    echo "Es wurde/n $tatbau Geb?ude in Auftrag gegeben. ";


    //+ifabfrage bei NULLeingabe

    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also was ich auf jeden fall ?ndern w?rde ist:


    jof schrieb:

    $holzvorrat=$ds->vh;



    so:



    $holzvorrat=$ds['vh']




    sonst f?llt mir nichts auf...sry!!

    DOCH:
    du vergisst bei if() die { } !!
    und bei elseif auch!!

    Ohne die kann es nicht gehn!!

  4. Warum wird immer nur "kannbau2 geb?ude werden gebaut" ausgegeben?


    Ich verstehe nichtmal warum das ausgegeben wird. In dem Script hast du kein Echo mit "... Geb?ude werden gebaut".

    Gru? Tobi
  5. Autor dieses Themas

    jof

    jof hat kostenlosen Webspace.

    doch hier:



    .......

    echo "Es wurde/n $tatbau Geb?ude in Auftrag gegeben. ";


    //+ifabfrage bei NULLeingabe

    ?>

  6. Autor dieses Themas

    jof

    jof hat kostenlosen Webspace.



    DOCH:
    du vergisst bei if() die { } !!
    und bei elseif auch!!

    Ohne die kann es nicht gehn!!


    kann man die nicht weglassen wenns einzeilig ist???

  7. if ($holzpreis<=$holzvorrat) $bau1="ja";

    $kannbau1= $holzvorrat / $holz; //hier muss noch nach untenn hin gerundet werden.

    if (steinpreis<=$steinvorrat) $bau2="ja";

    $kannbau2 =$steinvorrat / $steine; //hier muss noch nach unten hin abgerundet werden.

    if ( $bau1=="ja" && $bau2=="ja" )


    Also da ist ein Fehler drin.
    sollte doch nicht "steinpreis" dies hei?en "$steinpreis"

    n?mlich so:


    if ($holzpreis<=$holzvorrat) $bau1="ja";

    $kannbau1= $holzvorrat / $holz; //hier muss noch nach untenn hin gerundet werden.

    if ($steinpreis<=$steinvorrat) $bau2="ja";

    $kannbau2 =$steinvorrat / $steine; //hier muss noch nach unten hin abgerundet werden.

    if ( $bau1=="ja" && $bau2=="ja" )


    Dann noch eins da wurde wieder ein $ vergessen.


    if ($kannbau1 > $kannbau2 ) $tatbau = $kannbau2;
    elseif ($kannbau2 > $kannbau1 ) $tatbau = $kannbau1;
    elseif ($kannbau1 = kannbau2 ) $tatbau= $kannbau1;


    w?rde dann so sein:


    if ($kannbau1 > $kannbau2 ) $tatbau = $kannbau2;
    elseif ($kannbau2 > $kannbau1 ) $tatbau = $kannbau1;
    elseif ($kannbau1 = $kannbau2 ) $tatbau= $kannbau1;


    Ich hoffe ich habe dir geholfen!
  8. Autor dieses Themas

    jof

    jof hat kostenlosen Webspace.

    hab noch en bisschen was ver?ndert und dank eurer hilfe (besonders medabots1992) funktionierts jetzt, danke echt super community!!!

  9. Also was ich auf jeden fall ?ndern w?rde ist:


    jof schrieb:

    $holzvorrat=$ds->vh;



    so:



    $holzvorrat=$ds['vh']




    sonst f?llt mir nichts auf...sry!!

    DOCH:
    du vergisst bei if() die { } !!
    und bei elseif auch!!

    Ohne die kann es nicht gehn!!

    beides quark :biggrin:
    f?r arrays kannst du auch $array->wert nehmen
    und bei einzeiligen if, elseif und else kann man die {} weglassen, sollte man aber nich, da es sonst schnell un?bersichtlich wird ;)
  10. Autor dieses Themas

    jof

    jof hat kostenlosen Webspace.

    jetzt hab ichs noch ein bisschen abge?ndert, nun funktioniert aber gar nichts mehr: ich erhalte andauern pares error unexpected !, expecting ) on line 14, obwohl da gar nichts steht.


    <?
    session_start();

    //Geb?udebau
    //Die Variablen $kind und $build wurden ?bergeben.


    $name=$_SESSION['name'];


    $host="mysql.lima-city.de";
    $user="xxxxxx";
    $database="xxxxxx";
    $pass="xxxxxx";
    $dz=mysql_connect($host,$user,$pass);
    mysql_select_db($database,$dz);

    if (!is_numeric($build)) echo "Gib bitte einen nummerischen Wert an.";



    if ($kind=="Steinmetz")

    {
    $steine=200;
    $holz=50;
    }

    $holzpreis=$holz*$build;
    $steinpreis=$steine*$build;

    $query = "SELECT vh FROM tab2 WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $holzvorrat=$ds->vh;



    $query = "SELECT vs FROM tab2 WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $steinvorrat=$ds->vs;



    if ($holzpreis<=$holzvorrat) $bau1="ja";

    $kannbau1= $holzvorrat / $holz; //hier muss noch nach untenn hin gerundet werden.

    if ($steinpreis<=$steinvorrat) $bau2="ja";

    $kannbau2 =$steinvorrat / $steine; //hier muss noch nach unten hin abgerundet werden.

    if ( $bau1=="ja" && $bau2=="ja" )

    {

    $query = "SELECT fsm FROM tab WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $fsm=$ds->fsm;



    if($kind="Steinmetz") $kind2 = "bsm";
    if($kind="Steinmetz") $zeit = "zsm";

    $query = "SELECT $kind2 FROM tab WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $prufer2=$ds->$kind2;

    if ($prufer2=="0"){


    $tatbau=$build;

    $neu = $tatbau;

    $query = "UPDATE tab SET $kind2='$neu' WHERE name = '$name'";
    $sql=mysql_query($query);

    $ticks=(time()- 1108158150)/60 ;
    $ticksrounded=round($ticks);

    $bauzeit= $ticksrounded + 5*$tatbau;

    $query = "UPDATE tab SET $zeit='$bauzeit' WHERE name = '$name'";
    $sql=mysql_query($query);

    $kostenholz= $holz*$tatbau;
    $kostenstein= $steine * $tatbau;

    $kontoholz=$holzvorrat-$kostenholz;
    $kontostein=$steinvorrat-$kostenstein;

    $query = "UPDATE tab2 SET vh='$kontoholz' WHERE name = '$name'";
    $sql=mysql_query($query);

    $query = "UPDATE tab2 SET vs='$kontostein' WHERE name = '$name'";
    $sql=mysql_query($query);
    }

    else {

    $query = "SELECT $zeit2 FROM tab WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $zeit4=$ds->$zeit2;


    $zuzeit2= $zeit4 + 5*$tatbau;

    $query = "UPDATE tab SET $zeit='$zuzeit2' WHERE name = '$name'";
    $sql=mysql_query($query);

    $kostenholz= $holz*$tatbau;
    $kostenstein= $steine * $tatbau;

    $kontoholz=$holzvorrat-$kostenholz;
    $kontostein=$steinvorrat-$kostenstein;

    $query = "UPDATE tab2 SET vh='$kontoholz' WHERE name = '$name'";
    $sql=mysql_query($query);

    $query = "UPDATE tab2 SET vs='$kontostein' WHERE name = '$name'";
    $sql=mysql_query($query);

    }

    }


    else

    {


    if ($kannbau1 > $kannbau2 ) $tatbau = $kannbau2;
    elseif ($kannbau2 > $kannbau1 ) $tatbau = $kannbau1;
    elseif ($kannbau1 = $kannbau2 ) $tatbau= $kannbau1;



    if($kind="Steinmetz") $kind2 = "bsm";
    if($kind="Steinmetz") $zeit2 = "zsm";


    $query = "SELECT $kind2 FROM tab WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $prufer=$ds->$kind2;

    if ($prufer=="0"){


    $neu2 = $tatbau;

    $ticks2=(time()- 1108158150)/60 ;
    $ticksrounded2=round($ticks);

    $bauzeit2= $ticksrounded2 + 5*$tatbau;

    $query = "UPDATE tab SET $zeit2='$bauzeit2' WHERE name = '$name'";
    $sql=mysql_query($query);

    $query = "UPDATE tab SET $kind2='$neu2' WHERE name = '$name'";
    $sql=mysql_query($query);

    $kostenholz= $holz*$tatbau;
    $kostenstein= $steine * $tatbau;

    $kontoholz=$holzvorrat-$kostenholz;
    $kontostein=$steinvorrat-$kostenstein;

    $query = "UPDATE tab2 SET vh='$kontoholz' WHERE name = '$name'";
    $sql=mysql_query($query);

    $query = "UPDATE tab2 SET vs='$kontostein' WHERE name = '$name'";
    $sql=mysql_query($query);
    }



    else {

    $query = "SELECT $zeit2 FROM tab WHERE name = '$name'";
    $sql=mysql_query($query);
    $ds=mysql_fetch_object($sql);
    $zeit3=$ds->$zeit2;

    $zuzeit= $zeit3 + 5*$tatbau;

    $query = "UPDATE tab SET $zeit2='$zuzeit' WHERE name = '$name'";
    $sql=mysql_query($query);

    $neu3 = $prufer + $tatbau;

    $query = "UPDATE tab SET $kind2='$neu3' WHERE name = '$name'";
    $sql=mysql_query($query);

    $kostenholz= $holz*$tatbau;
    $kostenstein= $steine * $tatbau;

    $kontoholz=$holzvorrat-$kostenholz;
    $kontostein=$steinvorrat-$kostenstein;

    $query = "UPDATE tab2 SET vh='$kontoholz' WHERE name = '$name'";
    $sql=mysql_query($query);

    $query = "UPDATE tab2 SET vs='$kontostein' WHERE name = '$name'";
    $sql=mysql_query($query);


    }


    }




    echo "Es wurde/n $tatbau Geb?ude in Auftrag gegeben. ";


    ?>

  11. Autor dieses Themas

    jof

    jof hat kostenlosen Webspace.

    Also ein fehler war, dass $zeit noch nicht initialisiert war, nun funktioniert der Teil mit der zweiten gro?en if , aber der erste nicht.

    EDIT:// Nun funktioniert alles wieder. Wens interressiert: $tatbau wurde an der falschen Stelle initialisiert.

    Der code war wahrscheinlich auch ein bisschen lang, wenn man nicht wei? worum es geht^^
  12. s****d

    noch 3 fehlerchen

    else

    {


    if ($kannbau1 > $kannbau2 ) $tatbau = $kannbau2;
    elseif ($kannbau2 > $kannbau1 ) $tatbau = $kannbau1;
    elseif ($kannbau1 = $kannbau2 ) $tatbau= $kannbau1;



    if($kind="Steinmetz") $kind2 = "bsm";
    if($kind="Steinmetz") $zeit2 = "zsm";


    sollte == sein

    also:
    else

    {


    if ($kannbau1 > $kannbau2 ) $tatbau = $kannbau2;
    elseif ($kannbau2 > $kannbau1 ) $tatbau = $kannbau1;
    elseif ($kannbau1 == $kannbau2 ) $tatbau= $kannbau1;



    if($kind == "Steinmetz") $kind2 = "bsm";
    if($kind == "Steinmetz") $zeit2 = "zsm";

    sonst ist es eine zweisung und kein vergleich
  13. Autor dieses Themas

    jof

    jof hat kostenlosen Webspace.

    hast recht, danke!
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!