Ankündigung

Einklappen
Keine Ankündigung bisher.

Bedingung funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • Bedingung funktioniert nicht

    Ich möchte das der Wert bergbau_stein kleiner ist als der Wert Stein, bevor der gebbau möglich ist. Aber was habe ich falsch gemacht?


    function gebbau ()

    {
    if(ausgabe('bergbau_zeit')==0)
    if(ausgabe('holzfaeller')>0)
    if(ausgabe('bergbau_stein')<('stein'))
    if(ausgabe('bergbau_holz')<('holz'))
    if(ausgabe('bergbau_erz')<('erz'))
    }

  • #2
    Was soll denn die Funktion genau machen?
    Wenn du deinen Bedingungen noch geschweifte Klammern anhängst, wird es übersichtlicher. Und im Moment gibt es ja weder eine return, noch wird irgendetwas verarbeitet.

    Kommentar


    • #3
      function gebbau ()

      {
      if(ausgabe('bergbau_zeit')==0)
      if(ausgabe('holzfaeller')>0)
      if(ausgabe('bergbau_stein')<('stein'))
      if(ausgabe('bergbau_holz')<('holz'))
      if(ausgabe('bergbau_erz')<('erz'))
      {

      global $id;

      $zeit = time() +10 ;


      mysql_query ("UPDATE spieler SET bergbau_zeit = $zeit WHERE id = $id");

      }
      }

      if (isset ($_POST['geb']))

      {
      echo gebbau();
      }

      }
      }

      Kommentar


      • #4
        Also wenn die Bedingung nicht stimmt,soll er das Formular geb nicht abschicken

        Kommentar


        • #5
          Deine Art, mehrere Bedingungen zu prüfen, ist sehr eigenartig. Warum verknüpfst du diese Einzelbedingungen nicht mit logischen Operatoren und fasst sie somit zu einer einzelnen Bedingung zusammen? Es würde die Lesbarkeit enorm erhöhen.

          Warum deine Bedingung nicht stimmt, kann man dir vermutlich nicht ohne weiteres sagen, da wir nicht wissen, was die Funktion ausgabe() zurückgibt. Zumal ausgabe() irgendwie suggeriert, dass etwas ausgegeben wird, aber man will ja eigentlich einen Wert zurückgegeben bekommen, ziemlich irreführend. Und was sollen Ausdrücke wie ('erz')? Die Klammern haben hier keine Wirkung und somit vergleichst du mit dem String "erz". Und wenn dieser zu einer Zahl gecastet wird, wird daraus der Wert 0. Das möchtest du aber vermutlich nicht.

          Ich würde dir ehrlich raten, mit einem kleineren Projekt zu beginnen, statt mit einem Browsergame. Dieses solltest du erst als Fortgeschrittener angehen, da es sonst ziemlich frustrierend werden kann. Ein Browsergame ist (wenn es richtig gemacht werden soll) eine kleine Herausforderung, die man nicht mal eben so schreibt, wenn man PHP gerade erst lernt.

          VG

          Kommentar


          • #6
            Zitat von Bruno1980 Beitrag anzeigen
            Ich möchte das der Wert bergbau_stein kleiner ist als der Wert Stein, bevor der gebbau möglich ist. Aber was habe ich falsch gemacht?


            PHP-Code:
            function gebbau ()
            {
                        if(
            ausgabe('bergbau_zeit')==0
                 if(
            ausgabe('holzfaeller')>0
                 if(
            ausgabe('bergbau_stein')<('stein'))
                 if(
            ausgabe('bergbau_holz')<('holz'))
                 if(
            ausgabe('bergbau_erz')<('erz'))

            Bitte was? Du hast weder das Syntaxhighlighting noch deine Funktion ausgabe() angegeben und zudem können wir nicht wissen was das bedeutet ('stein') soll das ein Funktionsaufruf werden oder soll das eine Variable sein? Wenn ja fehlen die Dollarzeichen. Bitte versetze Dich in die Lage das Du dein Code jmd erklären sollst der ihn überhaupt nicht kennt.

            Kommentar


            • #7
              Der Wert bergbau_stein und stein sind Werte aus der Datenbank.
              Ich wollte halt eine Bedingung schreiben die sagt,das der Wert bergbau_stein höher sein muss als der Wert vom stein.

              Kleines Beispiel hätte mir ja gereicht wie man sowas machen kann.
              Ich bedanke mich bei euch und ich werde hier nichts mehr schreiben.
              Mein Projekt werde ich natürlich nicht aufgeben,es soll ja auch nicht über
              Nacht fertig gestellt werden.

              Gruss

              Bruno1980

              Kommentar


              • #8
                Zitat von Bruno1980 Beitrag anzeigen
                Der Wert bergbau_stein und stein sind Werte aus der Datenbank.
                Ich wollte halt eine Bedingung schreiben die sagt,das der Wert bergbau_stein höher sein muss als der Wert vom stein.

                Kleines Beispiel hätte mir ja gereicht wie man sowas machen kann.
                PHP-Code:
                $bergbau_stein 42// <-- Dieser Wert kommt aus der Datenbank
                $stein 23// <-- Dieser auch

                if($bergbau_stein $stein// <-- Vergleich (Kleines Beispiel)
                {
                  echo 
                'Jupp, is größer';
                }
                else
                {
                  echo 
                'Ne, is nicht größer';

                Viel Erfolg noch mit deinem Projekt!

                Kommentar


                • #9
                  Der Wert bergbau_stein und stein sind Werte aus der Datenbank.
                  Kann man anhand des Beispiels nicht erkennen. Wir können nicht hellsehen. Versetze dich mal in unsere Lage. Wenn du nur den Text aus deinem Post liest und nur den dort angegebenen Code siehst, lässt sich daraus nicht ableiten, woher die Werte kommen. Du verwendest die Funktion ausgabe(), aber was diese Funktion macht, geht aus den Code-Ausschnitten nicht hervor. Und was Ausdrücke wie ('erz') bedeuten, habe ich dir geschrieben.

                  Ich wollte halt eine Bedingung schreiben die sagt,das der Wert bergbau_stein höher sein muss als der Wert vom stein. Kleines Beispiel hätte mir ja gereicht wie man sowas machen kann.
                  PHP-Code:
                  if ($bergbau_stein $stein) {
                      
                  // Bedingung erfüllt

                  Das ist ein Beispiel, bringt dich das weiter?

                  Ich bedanke mich bei euch und ich werde hier nichts mehr schreiben.
                  Wieso? Du hast doch Tipps und Hinweise bekommen. Du musst sie nur lesen und anwenden.

                  Mein Projekt werde ich natürlich nicht aufgeben,es soll ja auch nicht über Nacht fertig gestellt werden.
                  Es sagt ja keiner, dass du dein Projekt komplett aufgeben sollst. Ich habe dir lediglich den Tipp gegeben, erstmal etwas einfacheres umzusetzen (z.B. ein Gästebuch oder ein simples Blog-System). Ein Browsergame ist nun mal umfangreicher und setzt fortgeschrittene Kenntnisse voraus. Du musst Sicherheit, Performance, Spiel-Logik und noch einiges mehr unter einen Hut kriegen. Da sind Grundlagen wie das Vergleichen zweier Werte nun mal unverzichtbar.

                  VG

                  Kommentar


                  • #10
                    Danke für die Antwort,dann will ich mal weiter basteln

                    Kommentar


                    • #11
                      Zitat von hts Beitrag anzeigen
                      PHP-Code:
                      $bergbau_stein 42// <-- Dieser Wert kommt aus der Datenbank (es wurde gesagt das die Variable bergbau_stein den Wert 42 hat,also kommt er nicht aus der Datenbank)
                      $stein 23// <-- Dieser auch (der Wert kommt auch nicht aus der Datenbank)

                      if($bergbau_stein $stein// <-- Vergleich (Kleines Beispiel)
                      {
                        echo 
                      'Jupp, is größer';
                      }
                      else
                      {
                        echo 
                      'Ne, is nicht größer';

                      Viel Erfolg noch mit deinem Projekt!
                      Genau da liegt das Problem,zu sagen das ne Variable den Wert 42 oder 23 hat kann ich selber. Ich möchte doch den Wert aus der Datenbank holen.

                      Kommentar


                      • #12
                        Zitat von Bruno1980 Beitrag anzeigen
                        Ich möchte doch den Wert aus der Datenbank holen.
                        Ich schätze mal, dass du dabei um eine Datenbankabfrage nicht herumkommst.

                        http://php.net/manual/de/function.mysql-query.php
                        http://php.net/manual/de/mysqli.query.php
                        http://php.net/manual/en/pdo.query.php

                        Kommentar


                        • #13
                          Zitat von Bruno1980 Beitrag anzeigen
                          Genau da liegt das Problem,zu sagen das ne Variable den Wert 42 oder 23 hat kann ich selber. Ich möchte doch den Wert aus der Datenbank holen.
                          Dann musst du das auch sagen. Im Thread-Titel steht "Bedingung funktioniert nicht". Woher sollen wir nun wissen, dass du nicht weißt, wie man Werte aus der DB ausliest?

                          Du musst schon ein wenig mitarbeiten und uns verständlich mitteilen, wo der Schuh drückt, sonst kommen wir nicht weiter

                          VG

                          Kommentar


                          • #14
                            PHP-Code:
                             if(ausgabe('bergbau_stein')<('stein')) 
                            Da vergleichst du den Wert, den ausgabe('bergbau_stein') zurückgibt, mit einer Zeichenkette, die "stein" enthält.

                            Ich bin sicher, dass du das nicht willst.

                            Die mysql_*-Extension ist übrigens ab PHP5.5 veraltet, daher solltest du - bevor es zu spät ist - auf mysqli oder PDO umsteigen.

                            Kommentar


                            • #15
                              Habe das Problem jetzt lösen können. Habe eine Datenbankabfrage erstellt und
                              die Einträge aus der Datenbank Variablen zugewiesen. Danach konnte ich die Variablen vergleichen und mein Problem war gelöst. Meine Datenbankabfrage
                              war nicht ganz richtig,hatte nur eine Verbindung aufgebaut und nicht daran gedacht das man diese auch auslesen muss.

                              Kommentar

                              Lädt...
                              X